#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |