Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
128633 黄恩宁 切割金属棍 C++ 通过 100 55 MS 1036 KB 577 2024-01-25 23:33:09

Tests(10/10):


#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(s<k) return false; return true; } int main() { int i; double mx=0; double left=0,right,ans=0; cin>>n>>k; for(i=1;i<=n;i++) { cin>>a[i]; if(mx<a[i]) mx=a[i]; } right=mx; while(left+0.009<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; }


测评信息: