#include <iostream>
#include <vector>
#include <cstring>
#include <string>
#include <iomanip>
#include <algorithm>
#include <fstream>
#include <cmath>
#include <unordered_set>
#include <set>
#include <unordered_map>
#include <map>
#include <deque>
#define ll long long
#define X first
#define Y second
#define endl '\n'
using namespace std;
void speed()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}
int n;
const int MAXN = 500100;
pair<ll, ll> a[MAXN];
ll mx = 0;
void read()
{
cin >> n;
for (int i = 1; i <= n; i++)
{
cin >> a[i].X >> a[i].Y;
mx = max(mx, a[i].Y);
}
sort(a + 1, a + 1 + n);
}
void solve()
{
int l = 1;
ll sum = 0;
for (int r = 1; r <= n; r++)
{
sum+=a[r].Y;
while(l<r&&(a[l+1].X-a[l].X)>a[l].Y)
{
sum-=a[l].X;
l++;
}
mx=max(mx,sum-(a[r].X-a[l].X));
}
}
signed main()
{
speed();
read();
solve();
cout<<mx<<endl;
return 0;
}