题目 -
信息学奥赛一本通(C++版)在线评测系统
http://ybt.ssoier.cn:8088/problem_show.php?pid=1242
代码
#include<iostream>
#include<cstdio>
using namespace std;
int n,k,xmin=1e8;
double a[1000001];
int check(int mid)
{
int ck=0;
for(int i=0;i<n;i++)
{
if(a[i]<mid)
{
return 1;
}
ck+=a[i]/mid;
}
if(ck<k)
{
return 0;
}
else
{
return 1;
}
}
int main()
{
int l,r;
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>a[i];
a[i]*=100;
xmin=(xmin>a[i]?a[i]:xmin);
}
l=1;
r=xmin;
int mid;
while(l<=r)
{
mid=(l+r)/2;
if(check(mid)==1)
{
l=mid+1;
}
else
{
r=mid-1;
}
}
if(r<100)cout<<"0.00";
else printf("%.2lf",r*1.0/100);
return 0;
}
问题 - 出现了7个答案错误
位于3 4 9 10 11 12 13点