답안 #309747

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
309747 2020-10-04T13:00:53 Z vipghn2003 Sure Bet (CEOI17_sure) C++14
0 / 100
0 ms 384 KB
#include<bits/stdc++.h>

using namespace std;

const int N=1e5+5;
int n;
double a[N],b[N];
long long s[N];

bool check(long long lim)
{
    long long cur=0;
    for(int i=1;i<=n;i++)
    {
        cur+=a[i];
        long long mx=(cur-lim)/10000-i;
        if(mx<0) continue;
        mx=min(mx,1ll*n);
        if(s[mx]-1ll*i*10000>=lim) return true;
    }
    return false;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>b[i];
        a[i]*=10000;
        b[i]*=10000;
    }
    sort(a+1,a+n+1);
    sort(b+1,b+n+1);
    reverse(a+1,a+n+1);
    reverse(b+1,b+n+1);
    for(int i=1;i<=n;i++) s[i]=max(s[i-1],s[i-1]+(int)b[i]-10000);
    long long l=-1e18,r=1e18,res;
    while(l<=r)
    {
        long long mid=(l+r)/2;
        if(check(mid))
        {
            res=mid;
            l=mid+1;
        }
        else r=mid-1;
    }
    cout<<fixed<<setprecision(4)<<1.0*res/10000;
}

Compilation message

sure.cpp: In function 'int main()':
sure.cpp:51:43: warning: 'res' may be used uninitialized in this function [-Wmaybe-uninitialized]
   51 |     cout<<fixed<<setprecision(4)<<1.0*res/10000;
      |                                           ^~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -