#include<stdio.h>
#define max(x,y) ((x>y)?(x):(y))
typedef struct
{
int w,s;
}Cow;
Cow cow[100000];
void qsort(int l,int r)
{
int i,j;
Cow x;
if(l<r)
{
i=l;
j=r;
x=cow[l];
while(i<j)
{
while(i<j&&cow[j].w+cow[j].s>=x.w+x.s)
j--;
if(i<j)
cow[i++]=cow[j];
while(i<j&&cow[i].w+cow[i].s<x.w+x.s)
i++;
if(i<j)
cow[j--]=cow[i];
}
cow[i]=x;
qsort(l,i-1);
qsort(i+1,r);
}
return ;
}
int main(void)
{
int n,i,res=-0x3f3f3f3f,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d%d",&cow[i].w,&cow[i].s);
qsort(0,n-1);
for(i=0;i<n;i++)
{
res=max(res,sum-cow[i].s);
sum+=cow[i].w;
}
printf("%d\n",res);
return 0;
}