cf B. Number Busters
http://codeforces.com/contest/382/problem/B
题意:给你Aa,b,w,x,c,然后每经过1秒,c=c-1; 如果b>=x,b=b-x;否则 a=a-1,b=w-(x-b); 问经过多少秒c<=a;
1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define ll __int64 5 using namespace std; 6 7 ll a,b,w,x,c; 8 9 int main() 10 { 11 while(scanf("%I64d%I64d%I64d%I64d%I64d",&a,&b,&w,&x,&c)!=EOF) 12 { 13 ll l=0,r=200000000000000; 14 if(c<=a) 15 { 16 printf("0\n"); 17 continue; 18 } 19 b=w-b-1; 20 while(l<r) 21 { 22 ll mid=(l+r)/2; 23 ll aa=a-(b+mid*x)/w; 24 ll cc=c-mid; 25 if(cc<=aa) r=mid; 26 else l=mid+1; 27 } 28 printf("%I64d\n",l); 29 } 30 }