| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
给后人一点数据上的提示而且顺便说一声,我测试了一下,下面的某几组数据不用满足也能过。说明数据库的数据还是比较水的。
4 3
8.02
7.43
4.57
5.39
>5.39
4 2540
8.02
7.43
4.57
5.39
>0.01
4 2542
8.02
7.43
4.57
5.39
>0.00
4 1
8.02
7.43
4.57
5.39
>8.02
1 1 1
>1
AC代码如下
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
#include <string.h>
using namespace std;
double x;
long long a[10005],m,n,summ = 0;
bool check(int mid){
long long sum = 0;
for(int i = 0;i < m; i++){
if(a[i] >= mid){
sum+=(a[i]/mid);
}
}
if(sum>=n)return true;
else return false;
}
int main()
{
scanf("%I64d%I64d",&m,&n);
for(long long i = 0; i < m;i++){
scanf("%lf",&x);
a[i] = (x+0.005)*100;
summ+=a[i];
}
long long l = 0,r = summ+1,mid; //这地方R不加1不满足1 1 1这组数据,但是依旧AC,还有一组数据忘了是啥,不满足也依旧AC
if(n>summ){printf("0.00\n");return 0;}
while(l+1<r){
mid = (l+r)/2;
if(check(mid)) l = mid;
else r = mid;
}
printf("%.2f\n",l*1.0/100);
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator