This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll readint(){
	ll x=0,f=1; char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
	return x*f;
}
struct node{
	ll x,y;
	bool operator<(const node c)const{
		if(x==c.x) return y<c.y;
		return x<c.x;
	}
}k[500005];
ll n;
ll s[500005];
int main(){
	n=readint();
	for(int i=1;i<=n;i++) k[i].x=readint(),k[i].y=readint();
	sort(k+1,k+n+1);
	for(int i=1;i<=n;i++) s[i]=s[i-1]+k[i].y;
	ll ans=0,now=0;
	for(int i=1;i<=n;i++){
		now=max(now,k[i].x-s[i-1]);
		ans=max(ans,s[i]-k[i].x+now);
	}
	cout<<ans<<endl;
	return 0;
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |