#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
vector<double> a(n), b(n);
for (int i = 0; i < n; i++) {
double t, r;
cin >> t >> r;
a[i] = t - 1;
b[i] = r - 1;
}
sort(a.rbegin(), a.rend());
sort(b.rbegin(), b.rend());
vector<double> A(n + 1), B(n + 1), G(n + 1);
for (int i = 1; i <= n; i++) A[i] = A[i - 1] + a[i - 1];
for (int i = 1; i <= n; i++) B[i] = B[i - 1] + b[i - 1];
for (int i = 0; i <= n; i++) G[i] = B[i] + i;
double ans = 0;
for (int s = 0; s <= n; s++) {
double F = A[s] + s;
int t0 = int(upper_bound(G.begin(), G.end(), F) - G.begin()) - 1;
if (t0 >= 0) ans = max(ans, B[t0] - s);
if (t0 + 1 <= n) ans = max(ans, A[s] - (t0 + 1));
}
cout << fixed << setprecision(4) << ans << "\n";
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwogICAgdmVjdG9yPGRvdWJsZT4gYShuKSwgYihuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgZG91YmxlIHQsIHI7CiAgICAgICAgY2luID4+IHQgPj4gcjsKICAgICAgICBhW2ldID0gdCAtIDE7CiAgICAgICAgYltpXSA9IHIgLSAxOwogICAgfQogICAgc29ydChhLnJiZWdpbigpLCBhLnJlbmQoKSk7CiAgICBzb3J0KGIucmJlZ2luKCksIGIucmVuZCgpKTsKICAgIHZlY3Rvcjxkb3VibGU+IEEobiArIDEpLCBCKG4gKyAxKSwgRyhuICsgMSk7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIEFbaV0gPSBBW2kgLSAxXSArIGFbaSAtIDFdOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBCW2ldID0gQltpIC0gMV0gKyBiW2kgLSAxXTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKykgR1tpXSA9IEJbaV0gKyBpOwogICAgZG91YmxlIGFucyA9IDA7CiAgICBmb3IgKGludCBzID0gMDsgcyA8PSBuOyBzKyspIHsKICAgICAgICBkb3VibGUgRiA9IEFbc10gKyBzOwogICAgICAgIGludCB0MCA9IGludCh1cHBlcl9ib3VuZChHLmJlZ2luKCksIEcuZW5kKCksIEYpIC0gRy5iZWdpbigpKSAtIDE7CiAgICAgICAgaWYgKHQwID49IDApIGFucyA9IG1heChhbnMsIEJbdDBdIC0gcyk7CiAgICAgICAgaWYgKHQwICsgMSA8PSBuKSBhbnMgPSBtYXgoYW5zLCBBW3NdIC0gKHQwICsgMSkpOwogICAgfQogICAgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oNCkgPDwgYW5zIDw8ICJcbiI7Cn0K