poj 1064(注意最后的输出是r不是mid)
#includeusing namespace std; int n,k,data[10005]; bool check(int len){ int sum = 0; for(int i=0;i ){ sum += data[i]/len; } if(sum>=k)return true; else return false; } int main(){ float tmp; scanf("%d%d",&n,&k); for(int i=0;i ){ scanf("%f",&tmp); data[i] = tmp*100; } int l,r,mid; l = 0; r = 10000000; while(l<r){ mid = (l+r+1)/2; if(check(mid))l = mid; else r = mid-1; } printf("%.2f\n",r/100.0); return 0; }