Submission #106038

#TimeUsernameProblemLanguageResultExecution timeMemory
106038he_____heArt Exhibition (JOI18_art)C++14
100 / 100
214 ms24824 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...