CF 224DIV2 B Number Busters
来源:互联网 发布:版本管理的软件 编辑:程序博客网 时间:2024/05/16 07:47
Arthur and Alexander are number busters. Today they've got a competition.
Arthur took a group of four integers a, b, w, x (0 ≤ b < w, 0 < x < w) and Alexander took integer с. Arthur and Alexander use distinct approaches to number bustings. Alexander is just a regular guy. Each second, he subtracts one from his number. In other words, he performs the assignment: c = c - 1. Arthur is a sophisticated guy. Each second Arthur performs a complex operation, described as follows: if b ≥ x, perform the assignment b = b - x, if b < x, then perform two consecutive assignments a = a - 1; b = w - (x - b).
You've got numbers a, b, w, x, c. Determine when Alexander gets ahead of Arthur if both guys start performing the operations at the same time. Assume that Alexander got ahead of Arthur if c ≤ a.
The first line contains integers a, b, w, x, c (1 ≤ a ≤ 2·109, 1 ≤ w ≤ 1000, 0 ≤ b < w, 0 < x < w, 1 ≤ c ≤ 2·109).
Print a single integer — the minimum time in seconds Alexander needs to get ahead of Arthur. You can prove that the described situation always occurs within the problem's limits.
4 2 3 1 6
2
4 2 3 1 7
4
1 2 3 2 6
13
1 1 2 1 1
0
#include<stdio.h>#include<math.h>#include<string.h>#include<algorithm>#include<limits.h>using namespace std;int hash[1111];int hash2[1111];int main(){int a,b,w,x,c;while(scanf("%d %d %d %d %d",&a,&b,&w,&x,&c)!=EOF){memset(hash,-1,sizeof(hash));int d= w- x;__int64 ans= 0;int sum= 0; // b出现的不同数的个数 int flag= 0;while(c> a){int max= b/x;//printf("%d\n",max);if(c- max<= a){ans+= c- a;c= a;break;}else{c-= max;b-= max * x;ans+= max;if(flag==0){if(hash[b]!=-1){__int64 hehe= ans- hash[b];__int64 me= (c - a )/ (hash2[b]- c);//printf("%d %d\n",me,hehe);ans+= me* hehe; // 此处会超 int!!! //printf("%I64d\n",ans);c-= me *(hash2[b]- c); flag= 1;}else{hash[b]= ans;hash2[b]= c;}}if(c<= a)break;int k= (x- b)/ d;b= b+ k*d;ans+= k;if(b< x){b+= d;ans++;}}}printf("%I64d\n",ans);}return 0;}
- CF 224DIV2 B Number Busters
- CF 382B Number Busters
- CF contest/382/B. Number Busters
- cf——B. Number Busters
- codeforces 224 B. Number Busters
- B. Number Busters
- CF 231div2 B. Very Beautiful Number
- Codeforces 382 B. Number Busters
- B. Number Busters----数学推演
- cf 131 DIV2 B
- CF 173(div2) B
- CF 131 div2 B
- cf div2 191 b
- cf 186 div2 B
- CF div2(225) B
- CF--#334-div2--B
- Codeforces 382B Number Busters(数论)
- Number Busters
- 斯坦福ML公开课笔记11——贝叶斯正则化、在线学习、ML应用建议
- Android成长之路-实现手机号归属地查找的应用
- JAVA 用 Apache CXF 调用 .NET 服务端 WebService
- Linux 技巧:让进程在后台可靠运行的几种方法
- JavaMail
- CF 224DIV2 B Number Busters
- DWZ中刷新dialog的方案解决
- CoreData 基本操作方法封装
- 黑马程序员-面向对象
- hibernat错误总结
- 黑马程序员_java学习for循环,函数,排序
- Flex拓扑图
- Cocos2d-x中动画速度控制
- 黑马程序员-异常处理