Submission #868211

#TimeUsernameProblemLanguageResultExecution timeMemory
868211amirhoseinfar1385Art Exhibition (JOI18_art)C++17
0 / 100
0 ms600 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	long long n;
	cin>>n;
	vector<pair<long long,long long>>all(n);
	for(long long i=0;i<n;i++){
		cin>>all[i].first>>all[i].second;
	}
	sort(all.begin(),all.end());
	if(n>5000){
		return 0;
	}
	for(int i=1;i<n;i++){
		all[i].second-=all[i].first-all[i-1].first;
	}
	for(int i=1;i<n;i++){
		all[i].second+=all[i-1].second;
	}
	long long res=all.back().second,maxa=-1e15;
	if(n>1){
		res-=all[n-2].second+(all[n-1].first-all[n-2].first);
	}
	for(int i=n-2;i>=0;i--){
		maxa=max(maxa,all[i+1].second);
		long long fake=maxa-all[i].second;
		if(i==0){
			fake+=all[i].second;
		}
		else{
			fake+=all[i].second-all[i-1].second+(all[i].first-all[i-1].first);
		}
		res=max(res,fake);
	}
	cout<<res<<"\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...