标签:
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2606 Accepted Submission(s): 970
1 #include <stdio.h> 2 using namespace std; 3 double num[10010]; int i, n, k; 4 int f(double x) 5 { 6 int total = 0; 7 for(i=0; i<n; i++) 8 total += (int)(num[i]/x); 9 return total>=k; 10 } 11 int main() 12 { 13 // int n, k; 14 while(~scanf("%d %d", &n, &k)) 15 { 16 if(n==0 && k==0) 17 break; 18 double max = -1; 19 for(i=0; i<n; i++) 20 { 21 scanf("%lf", &num[i]); 22 if(num[i] > max) 23 max = num[i]; 24 } 25 double left = 0.01, right = max, mid; //left = 0; → → WA ! 26 while(right - left > 1e-4) 27 { 28 mid = (right + left) / 2; 29 if(f(mid)) left = mid; 30 else right = mid; 31 } 32 mid=(double)(int)(mid*100)/100; // WA. 33 printf("%.2f\n", mid); 34 } 35 }
标签:
原文地址:http://www.cnblogs.com/fengshun/p/4692593.html