#include<bits/stdc++.h>
using namespace std;
inline void write(int n){
if(n<0){putchar('-');n=-n;}
if(n>9)write(n/10);
putchar(char(n%10+'0'));
}
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
struct cow{int w, c, y;} niu[500001];
bool cmp1(cow x, cow y)
{
if(x.w==y.w) return x.c<y.c;
return x.w<y.w;
}
bool cmp2(cow x, cow y)
{
if(x.c==y.c) return x.w<y.w;
return x.c<y.c;
}
int s1[500001], s2[500001];
int main()
{
int n; n=read();
for(int i=1;i<=n;i++)
niu[i].w=read(), niu[i].c=read(), niu[i].y=i;
if(n==1)
{
printf("-%d", niu[1].c);
return 0;
}
sort(niu+1, niu+1+n, cmp1);
int ans1=-0x7fffffff;
int k1=0;
//for(int i=1;i<=n;i++) cout << niu[i].w << " " << niu[i].c << endl;
for(int i=1;i<=n;i++) s1[i]=s1[i-1]+niu[i].w/*, cout << s[i] << " "*/;
for(int i=n;i>=1;i--) if(s1[i-1]-niu[i].c>ans1) ans1=s1[i-1]-niu[i].c;
sort(niu+1, niu+1+n, cmp2);
int ans2=-0x7fffffff;
// for(int i=1;i<=n;i++) cout << niu[i].w << " " << niu[i].c << endl;
int k2=0;
for(int i=1;i<=n;i++)
{
s2[++k2]=s2[k2]+niu[i].w;
// cout << s[k] << " ";
}
for(int i=1;i<n;i++)
{
if(s2[i]-niu[i+1].c>ans2) ans2=s2[i]-niu[i].c;
}
printf("%d", min(ans1, ans2));
return 0;
}