提交时间:2024-01-25 23:33:09
运行 ID: 128633
#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; }