#include<iostream>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=50005;
const int INF=0x3f3f3f3f;
int n;
struct node
{
int w,s,sum;
bool operator<(const node &c)const//按体重从小到大排序
{
return sum<c.sum;
}
};
node a[MAXN];
int main()
{
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a[i].w>>a[i].s;
a[i].sum=a[i].w+a[i].s;
}
sort(a,a+n);//排序
int ans=-INF;//注意不能是0
int sum=0;//累计体重
for(int i=0;i<n;i++)
{
ans=max(ans,sum-a[i].s);//求最大的崩溃值
sum+=a[i].w;//把上面的体重加一起
}
cout<<ans<<endl;
}
return 0;
}