我的代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,a[100001];
double x;
bool ck(int x){
int sum=0;
for(int i=0;i<n;i++)sum+=a[i]/x;
return sum>=m;
}
int ef(int l,int r){
while(l+1<r){
int mid=l+r>>1;
if(ck(mid))l=mid;
else r=mid;
}return l;
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)cin>>x,a[i]=x*100;
sort(a,a+n);
printf("%0.2lf",ef(0,a[n-1])/100.0);
return 0;
}
在#8中标准答案1.00我的答案0.99会错?
#8测试点