#include "bits/stdc++.h"
#include "ext/pb_ds/assoc_container.hpp"
#define int long long
#define all(v) v.begin() , v.end()
#define rall(v) v.rbegin() , v.rend()
#define pii pair<int , int>
#define pb push_back
#define F first
#define S second
using namespace std;
using namespace __gnu_pbds;
const int N = 1e4 + 5;
const int mod = 1e9 + 7;
const int inf = 1e17;
void Yusiff(){
int n; cin >> n;
vector<int> a(n + 1) , b(n + 1);
vector<pii> v;
int value = 0;
for(int i = 1; i <= n; i++){
cin >> a[i] >> b[i];
v.pb({a[i] , b[i]});
}
vector<int> pref(n + 1);
pref[0] = 0;
sort(all(v) , [&](pii aa , pii bb){
if(aa.F == bb.F) return aa.S < bb.S;
return aa.F < bb.F;
});
for(int i = 1; i <= n; i++){
pref[i] = v[i - 1].S + pref[i - 1];
}
int mx , mn = v[0].F;
int last = 0;
int ans = -inf;
for(int i = n; i >= 1; i--){
mx = v[i - 1].F;
value = pref[i];
ans = max(ans , value - (mx - mn));
// cout << ans << '\n';
// cout << value - (mx - mn) << '\n';
}
// for(auto x: pref) cout << x << ' ';
cout << ans << '\n';
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
// freopen("wormsort.in", "r", stdin);
// freopen("wormsort.out", "w", stdout);
int T = 1;
// cin >> T;
while(T--){
Yusiff();
}
}
/*
array
*/