Submission #256001

#TimeUsernameProblemLanguageResultExecution timeMemory
256001giorgikobSure Bet (CEOI17_sure)C++14
100 / 100
192 ms3576 KiB
#include<bits/stdc++.h>
#define ll long long
#define ff first
#define ss second
//#define pb push_back
using namespace std;

const int N = 1e6;

int n;
double A[N], B[N];

int main(){

        cin >> n;
        for(int i = 1; i <= n; i++){
                cin >> A[i] >> B[i];
        }

        sort(A+1,A+1+n); reverse(A+1,A+1+n);
        sort(B+1,B+1+n); reverse(B+1,B+1+n);

        int pa = 2, pb = 2, cur = 2;
        double answer = 0, cnt = min(A[1],B[1]) - 2, suma = A[1], sumb = B[1];
        answer = max(answer,cnt);
        while(pa <= n || pb <= n){
                cur++;
                if(pa > n){
                        sumb += B[pb]; pb++;
                        cnt = min(suma, sumb) - cur;
                        continue;
                }

                if(pb > n){
                        suma += A[pa]; pa++;
                        cnt = min(suma, sumb) - cur;
                        continue;
                }

                if(suma < sumb){
                        suma += A[pa]; pa++;
                } else {
                        sumb += B[pb]; pb++;
                }

                cnt = min(suma, sumb) - cur;

                answer = max(answer, cnt);
        }

        printf("%0.4f", answer);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...