#include <bits/stdc++.h>
#define maxN 100005
using namespace std;
struct zgrada{
long long a,b,h,r;
};
struct segment{
long long m,l;
};
zgrada a[maxN];
segment seg[4*maxN];
long long n,i,x,y,ans,b[maxN],c[maxN],l[maxN],d[maxN],p[maxN],sa[maxN],sb[maxN],h[maxN];
void propagate(long long n,long long l,long long d){
seg[n].m+=seg[n].l;
if(l==d){
seg[n].l=0;
}
else{
seg[2*n].l+=seg[n].l;
seg[2*n+1].l+=seg[n].l;
seg[n].l=0;
}
}
void updatel(long long n,long long l,long long d,long long x,long long y,long long v){
propagate(n,l,d);
if (x <= l && d <= y) {
seg[n].l+= v;
} else {
int m = (l+d) / 2;
if (x <= m) {
updatel(2*n,l,m,x, y, v);
}
if (y >= m + 1) {
updatel(2*n+1,m+1,d, x, y, v);
}
propagate(2*n,l,m);
propagate(2*n+1,m+1,d);
seg[n].m=max(seg[2*n].m,seg[2*n+1].m);
}
}
void update(long long n,long long l,long long d,long long x,long long y){
propagate(n,l,d);
if(l==d){
seg[n].m=max(seg[n].m,y);
}
else{
long long m=(l+d)/2;
if(x<=m) update(2*n,l,m,x,y);
else update(2*n+1,m+1,d,x,y);
propagate(2*n,l,m);
propagate(2*n+1,m+1,d);
seg[n].m=max(seg[2*n].m,seg[2*n+1].m);
}
}
long long query(long long n,long long l,long long d,long long x,long long y){
propagate(n,l,d);
if(x<=l && y>=d){
return seg[n].m;
}
else{
long long ans=0,m=(l+d)/2;
if(x<=m) ans=query(2*n,l,m,x,y);
if(y>=m+1) ans=max(ans,query(2*n+1,m+1,d,x,y));
return ans;
}
}
int main()
{
std::ios::sync_with_stdio(false);
cin>>n;
p[0]=0;
for(i=0;i<n;i++){
cin>>a[i].h>>a[i].r>>a[i].a>>a[i].b;
p[i+1]=p[i]+a[i].r;
h[i]=a[i].h;
}
sort(h,h+n);
for(i=0;i<4*maxN;i++){
seg[i].m=seg[i].l=LLONG_MIN;
}
for(i=0;i<n;i++){
x=lower_bound(h,h+n,a[i].h)-h;
y=upper_bound(h,h+n,a[i].h)-h;
l[i]=max((long long)0,query(1,0,n-1,0,x))+a[i].a+a[i].r;
updatel(1,0,n-1,y,n-1,a[i].r);
update(1,0,n-1,x,l[i]);
}
for(i=0;i<4*maxN;i++){
seg[i].m=seg[i].l=LLONG_MIN;
}
for(i=n-1;i>=0;i--){
x=lower_bound(h,h+n,a[i].h)-h;
y=upper_bound(h,h+n,a[i].h)-h;
d[i]=max((long long)0,query(1,0,n-1,0,x))+a[i].b+a[i].r;
updatel(1,0,n-1,y,n-1,a[i].r);
update(1,0,n-1,x,d[i]);
}
long long ans=0;
memset(b,-1,sizeof(b));
memset(c,-1,sizeof( c ));
for(i=0;i<n;i++){
x=lower_bound(h,h+n,a[i].h)-h;
if(b[x]==-1) b[x]=i;
sa[x]+=a[i].a;
sb[x]+=a[i].b;
c[x]=i;
}
for(i=0;i<n;i++){
if(b[i]==-1 || c[i]==-1) continue;
x=p[c[i]]-p[b[i]+1]+sa[i]+sb[i]-a[b[i]].a-a[c[i]].b;
x+=l[b[i]]+d[c[i]];
ans=max(ans,x);
}
cout<<ans-p[n]<<endl;
return 0;
}
CiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIG1heE4gMTAwMDA1Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpzdHJ1Y3QgemdyYWRhewpsb25nIGxvbmcgYSxiLGgscjsKfTsKc3RydWN0IHNlZ21lbnR7CmxvbmcgbG9uZyBtLGw7Cn07CnpncmFkYSBhW21heE5dOwpzZWdtZW50IHNlZ1s0Km1heE5dOwpsb25nIGxvbmcgbixpLHgseSxhbnMsYlttYXhOXSxjW21heE5dLGxbbWF4Tl0sZFttYXhOXSxwW21heE5dLHNhW21heE5dLHNiW21heE5dLGhbbWF4Tl07Cgp2b2lkIHByb3BhZ2F0ZShsb25nIGxvbmcgbixsb25nICBsb25nIGwsbG9uZyBsb25nIGQpewpzZWdbbl0ubSs9c2VnW25dLmw7CmlmKGw9PWQpewpzZWdbbl0ubD0wOwp9CmVsc2V7CnNlZ1syKm5dLmwrPXNlZ1tuXS5sOwpzZWdbMipuKzFdLmwrPXNlZ1tuXS5sOwpzZWdbbl0ubD0wOwp9Cn0Kdm9pZCB1cGRhdGVsKGxvbmcgbG9uZyBuLGxvbmcgbG9uZyBsLGxvbmcgbG9uZyBkLGxvbmcgbG9uZyB4LGxvbmcgbG9uZyB5LGxvbmcgbG9uZyB2KXsKcHJvcGFnYXRlKG4sbCxkKTsKaWYgKHggPD0gbCAmJiBkIDw9IHkpIHsKICAgICAgICBzZWdbbl0ubCs9IHY7CiAgICB9IGVsc2UgewogICAgICAgIGludCBtID0gKGwrZCkgLyAyOwogICAgICAgIGlmICh4IDw9IG0pIHsKICAgICAgICAgICAgdXBkYXRlbCgyKm4sbCxtLHgsIHksIHYpOwogICAgICAgIH0KICAgICAgICBpZiAoeSA+PSBtICsgMSkgewogICAgICAgICAgICB1cGRhdGVsKDIqbisxLG0rMSxkLCB4LCB5LCB2KTsKICAgICAgICB9CiAgICAgICAgcHJvcGFnYXRlKDIqbixsLG0pOwogICAgICAgIHByb3BhZ2F0ZSgyKm4rMSxtKzEsZCk7CiAgICAgICAgc2VnW25dLm09bWF4KHNlZ1syKm5dLm0sc2VnWzIqbisxXS5tKTsKICAgIH0KfQp2b2lkIHVwZGF0ZShsb25nIGxvbmcgbixsb25nIGxvbmcgbCxsb25nIGxvbmcgZCxsb25nIGxvbmcgeCxsb25nIGxvbmcgeSl7CnByb3BhZ2F0ZShuLGwsZCk7CmlmKGw9PWQpewogICAgc2VnW25dLm09bWF4KHNlZ1tuXS5tLHkpOwp9CmVsc2V7CiAgICBsb25nIGxvbmcgbT0obCtkKS8yOwogICAgaWYoeDw9bSkgdXBkYXRlKDIqbixsLG0seCx5KTsKICAgIGVsc2UgdXBkYXRlKDIqbisxLG0rMSxkLHgseSk7CiAgICBwcm9wYWdhdGUoMipuLGwsbSk7CiAgICBwcm9wYWdhdGUoMipuKzEsbSsxLGQpOwogICAgc2VnW25dLm09bWF4KHNlZ1syKm5dLm0sc2VnWzIqbisxXS5tKTsKfQp9CmxvbmcgbG9uZyBxdWVyeShsb25nIGxvbmcgbixsb25nIGxvbmcgbCxsb25nIGxvbmcgZCxsb25nIGxvbmcgeCxsb25nIGxvbmcgeSl7CnByb3BhZ2F0ZShuLGwsZCk7CmlmKHg8PWwgJiYgeT49ZCl7CiAgICByZXR1cm4gc2VnW25dLm07Cn0KZWxzZXsKICAgIGxvbmcgbG9uZyBhbnM9MCxtPShsK2QpLzI7CiAgICBpZih4PD1tKSBhbnM9cXVlcnkoMipuLGwsbSx4LHkpOwogICAgaWYoeT49bSsxKSBhbnM9bWF4KGFucyxxdWVyeSgyKm4rMSxtKzEsZCx4LHkpKTsKICAgIHJldHVybiBhbnM7Cn0KfQoKaW50IG1haW4oKQp7CiAgICBzdGQ6Omlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbj4+bjsKICAgIHBbMF09MDsKICAgIGZvcihpPTA7aTxuO2krKyl7CiAgICAgICAgY2luPj5hW2ldLmg+PmFbaV0ucj4+YVtpXS5hPj5hW2ldLmI7CiAgICAgICAgcFtpKzFdPXBbaV0rYVtpXS5yOwogICAgICAgIGhbaV09YVtpXS5oOwogICAgfQogICAgc29ydChoLGgrbik7CiAgICBmb3IoaT0wO2k8NCptYXhOO2krKyl7CiAgICAgICAgc2VnW2ldLm09c2VnW2ldLmw9TExPTkdfTUlOOwogICAgfQogICAgZm9yKGk9MDtpPG47aSsrKXsKICAgICAgeD1sb3dlcl9ib3VuZChoLGgrbixhW2ldLmgpLWg7CiAgICAgIHk9dXBwZXJfYm91bmQoaCxoK24sYVtpXS5oKS1oOwogICAgICBsW2ldPW1heCgobG9uZyBsb25nKTAscXVlcnkoMSwwLG4tMSwwLHgpKSthW2ldLmErYVtpXS5yOwogICAgICB1cGRhdGVsKDEsMCxuLTEseSxuLTEsYVtpXS5yKTsKICAgICAgdXBkYXRlKDEsMCxuLTEseCxsW2ldKTsKICAgIH0KICAgIGZvcihpPTA7aTw0Km1heE47aSsrKXsKICAgICAgICBzZWdbaV0ubT1zZWdbaV0ubD1MTE9OR19NSU47CiAgICB9CiAgICBmb3IoaT1uLTE7aT49MDtpLS0pewogICAgICB4PWxvd2VyX2JvdW5kKGgsaCtuLGFbaV0uaCktaDsKICAgICAgeT11cHBlcl9ib3VuZChoLGgrbixhW2ldLmgpLWg7CiAgICAgIGRbaV09bWF4KChsb25nIGxvbmcpMCxxdWVyeSgxLDAsbi0xLDAseCkpK2FbaV0uYithW2ldLnI7CiAgICAgIHVwZGF0ZWwoMSwwLG4tMSx5LG4tMSxhW2ldLnIpOwogICAgICB1cGRhdGUoMSwwLG4tMSx4LGRbaV0pOwogICAgfQogICAgbG9uZyBsb25nIGFucz0wOwogICAgbWVtc2V0KGIsLTEsc2l6ZW9mKGIpKTsKICAgIG1lbXNldChjLC0xLHNpemVvZiggYyApKTsKICAgIGZvcihpPTA7aTxuO2krKyl7CiAgICAgICAgeD1sb3dlcl9ib3VuZChoLGgrbixhW2ldLmgpLWg7CiAgICAgICAgaWYoYlt4XT09LTEpIGJbeF09aTsKICAgICAgICBzYVt4XSs9YVtpXS5hOwogICAgICAgIHNiW3hdKz1hW2ldLmI7CiAgICAgICAgY1t4XT1pOwogICAgfQogICAgZm9yKGk9MDtpPG47aSsrKXsKICAgICAgICBpZihiW2ldPT0tMSB8fCBjW2ldPT0tMSkgY29udGludWU7CiAgICAgICAgeD1wW2NbaV1dLXBbYltpXSsxXStzYVtpXStzYltpXS1hW2JbaV1dLmEtYVtjW2ldXS5iOwogICAgICAgIHgrPWxbYltpXV0rZFtjW2ldXTsKICAgICAgICBhbnM9bWF4KGFucyx4KTsKICAgIH0KICAgIGNvdXQ8PGFucy1wW25dPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=