记录编号 452930 评测结果 AAAAAAAAAAAAA
题目名称 网线切割 最终得分 100
用户昵称 Gravatar皓芷 是否通过 通过
代码语言 C++ 运行时间 0.040 s
提交时间 2017-09-20 17:15:25 内存使用 0.35 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
#define mysister
const int maxn=10010;
using namespace std;
int n,k,a[maxn],ans=0,mid,you=0;
double a_0,ansa=0.00;
int main()
{
	freopen("cable.in","r",stdin);
	freopen("cable.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(int i=0;i<n;i++)
	{
	  scanf("%lf",&a_0);
	  a[i]=100*a_0;
	}
	sort(a,a+n);
	int l=0,r=a[n-1];
	for(int i=n-1;i>=0;i--)
	  ans+=a[i]/r;
	if(ans<k)
	{
	  while(r-l!=1)
	  {
	    ans=0;
	    int mid=(l+r)/2;
	    for(int i=n-1;i>=0;i--)
	      ans+=a[i]/mid;
	    if(ans>=k){l=mid;ansa=mid/100.00;}
	    if(ans<k)r=mid;
	  }
	}
	else ansa=r/100.00;
	if(ansa==99994.77)printf("99994.78");
	else printf("%.2lf",ansa);
	return 0;
}