0319补题
C - Candies
二分答案
1 #include <iostream> 2 #include <algorithm> 3 #include <cmath> 4 using namespace std; 5 long long a,sum=1; 6 long long find(long long n,long long f) 7 { 8 long long d=0; 9 while(n>10) 10 { 11 12 n-=f; 13 if(n>=10) 14 n=n-n/10; 15 d++; 16 } 17 long long s=f*d+n; 18 if(s*2>=a) 19 { 20 sum=f; 21 return 1; 22 } 23 else return 0; 24 25 } 26 int main() 27 { 28 cin>>a; 29 long long l=1; 30 long long r=a/2,k; 31 while(l<=r) 32 { 33 k=(l+r)/2; 34 long long t=find(a,k); 35 if(t==1) 36 { 37 r=k-1; 38 } 39 else l=k+1; 40 } 41 cout<<sum; 42 43 44 }