| ||||||||||
| 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 | |||||||||
Re:给后人一点数据上的提示In Reply To:给后人一点数据上的提示 Posted by:iluoer at 2016-08-07 10:05:34 > 而且顺便说一声,我测试了一下,下面的某几组数据不用满足也能过。说明数据库的数据还是比较水的。而且G++也是可以过的,亲测
> 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