Submission #1261968

#TimeUsernameProblemLanguageResultExecution timeMemory
1261968earlyamazonSure Bet (CEOI17_sure)C++20
0 / 100
0 ms324 KiB
#include<bits/stdc++.h>
using namespace std;
double a_zaklady[100005];
double b_zaklady[100005];

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n;
    cin >> n;
    int a_wskaznik = n-2;
    int b_wskaznik = n-2;
    double a_zyski = 0;
    double b_zyski = 0;
    int zainwestowane = 0;
    double odp = 0;
    for(int i = 0; i < n;i++)
    {
        cin >> a_zaklady[i];
        cin >> b_zaklady[i];
    }
    sort(a_zaklady, a_zaklady+n);
    sort(b_zaklady, b_zaklady+n);
    a_zyski = a_zaklady[n-1];
    b_zyski = b_zaklady[n-1];
    zainwestowane+=2;
    while(1)
    {
        // cout << fixed<< setprecision(4) <<" zyski z obu mecszow to " << a_zyski << " " << b_zyski << "\n";
        if(a_zyski < b_zyski)
        {
            if(a_wskaznik < 0)
            {
                cout << fixed << setprecision(4)<<odp;
                return 0;
            }
            else
            {
                a_zyski+=a_zaklady[a_wskaznik];
                zainwestowane++;
                a_wskaznik--;
                odp = max(min(a_zyski, b_zyski) - zainwestowane, odp);
            }    
        }
        else
        {
            if(b_wskaznik < 0)
            {
                cout << fixed << setprecision(4)<<odp;
                return 0;
            }
            else
            {
                b_zyski+=b_zaklady[b_wskaznik];
                zainwestowane++;
                b_wskaznik--;
                odp = max(min(a_zyski, b_zyski) - zainwestowane, odp);
            }    
        }
    }
    cout << fixed << setprecision(4)<<odp;
    
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...