#include <initializer_list>
#include <iomanip>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <vector>
#include <algorithm>
#include <functional>
#include <fstream>
using namespace std;
#define int long long
signed main () {
ios::sync_with_stdio (false);
cin.tie (0);
cout.tie (0);
int N = 0;
cin >> N;
vector <double> a (N + 1);
vector <double> b (N + 1);
for (int i = 1; i <= N; i++)
cin >> a[i] >> b[i];
sort (a.begin() + 1, a.end(), greater ());
sort (b.begin() + 1, b.end(), greater ());
int cnt = 0;
int bind = 1;
double asum = 0;
double bsum = 0;
double ans = 0;
for (int i = 1; i <= N; i++) {
asum += a[i];
cnt++;
while (bind <= N && bsum + b[bind] <= asum) {
bsum += b[bind++], cnt++;
ans = max (
ans,
min (
asum, bsum
) - cnt
);
}
ans = max (
ans,
min (
asum, bsum
) - cnt
);
if (bind <= N)
ans = max (
ans,
min (
asum, bsum + b[bind]
) - cnt - 1.0
);
}
printf("%.4lf",(double)ans);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |