标签:input label i++ while can ota bottom 二分 rom
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3148 Accepted Submission(s): 1174
1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<algorithm> 6 using namespace std; 7 #define ll long long 8 #define L 20005 9 10 using namespace std; 11 12 ll a[L],b[L],c[L],l,r,n; 13 14 ll solve(ll mid) 15 { 16 ll k,sum = 0; 17 int i; 18 for(i = 0; i<n; i++) 19 { 20 k = min(mid,b[i]); 21 if(k>=a[i]) 22 sum+=(k-a[i])/c[i]+1; 23 } 24 return sum; 25 } 26 27 int main() 28 { 29 int i,j; 30 while(~scanf("%lld",&n)) 31 { 32 for(i = 0; i<n; i++) 33 scanf("%lld%lld%lld",&a[i],&b[i],&c[i]); 34 l = 0,r = 1LL<<31; 35 cout<<r<<endl; 36 ll mid; 37 while(l<r) 38 { 39 mid = (l+r)/2; 40 if(solve(mid)%2) r = mid; 41 else l = mid+1; 42 } 43 if(l == 1LL<<31) 44 printf("DC Qiang is unhappy.\n"); 45 else 46 printf("%lld %lld\n",l,solve(l)-solve(l-1)); 47 } 48 49 return 0; 50 }
标签:input label i++ while can ota bottom 二分 rom
原文地址:http://www.cnblogs.com/Xycdada/p/6713228.html