#include <bits/stdc++.h>//尼玛
#define int long long//尼玛
using namespace std;//尼玛
int n,k;//尼玛
double a[114514];//尼玛
//double mina=DBL_MAX;//尼玛
inline bool check(int mid)//尼玛
{//尼玛
int cnt=0;//尼玛
for(int i=1;i<=n;i++)//尼玛
{//尼玛
cnt+=floor(a[i]/mid); //尼玛
}//尼玛
return cnt>=k;//尼玛
}//尼玛
signed main(){//尼玛
ios::sync_with_stdio(0);//尼玛
cin.tie(0);//尼玛
cin>>n>>k;//尼玛
double l=0.0,r=0.0;//尼玛
for(int i=1;i<=n;i++)//尼玛
{//尼玛
cin>>a[i];//尼玛
r+=a[i];//尼玛
}//尼玛
//尼玛
while(r-l>1e-4)//尼玛
{//尼玛
double mid=(l+r)/2;//尼玛
if(check(mid)) l=mid;//尼玛
else r=mid;//尼玛
}//尼玛
printf("%.2lf",l);//尼玛
return 0;//尼玛
}//尼玛
没注释的版本:
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,k;
double a[114514];
//double mina=DBL_MAX;
inline bool check(int mid)
{
int cnt=0;
for(int i=1;i<=n;i++)
{
cnt+=floor(a[i]/mid);
}
return cnt>=k;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0);
cin>>n>>k;
double l=0.0,r=0.0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
r+=a[i];
}
while(r-l>0.001)
{
double mid=(l+r)/2;
if(check(mid)) l=mid;
else r=mid;
}
printf("%.2lf",l);
return 0;
}