Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
128347 | 陆妍凯 | 切割金属棍 | C++ | 解答错误 | 0 | 42 MS | 1048 KB | 511 | 2024-01-25 16:59:32 |
#include<iostream> #include<cstdio> using namespace std; const int NR=100010; int n,k; double a[NR]; bool judge(double x) { int i,s=0; for(i=1;i<=n;i++) s+=(int)(a[i]/x); if(x<k) return false; return true; } int main() { int i; double left=1,right=n,ans=0; cin>>n>>k; for(i=1;i<=n;i++) cin>>a[i]; while(left<right) { double mid=(left+right)/2; if(judge(mid)==true) { if(ans<mid) ans=mid; left=mid; } else right=mid; } printf("%.2f\n",ans); return 0; }