Submission #1257536

#TimeUsernameProblemLanguageResultExecution timeMemory
1257536ykc0606Art Exhibition (JOI18_art)C++20
100 / 100
119 ms23880 KiB
#include <bits/stdc++.h>
#define int long long 
#define N 500001
using namespace std;
const int inf=1e18;
int32_t main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL); 
	
	int n;
	cin >> n;
	int a[n+1],b[n+1];
	vector<pair<int,int>> v(n+1);
	for(int i=1;i<=n;i++){
		cin >> a[i] >> b[i];
		v[i].first=a[i];
		v[i].second=b[i];
	}
	sort(v.begin(),v.end());
	for(int i=1;i<=n;i++){
		a[i]=v[i].first;
		b[i]=v[i].second;
	}
	/*
	for(int i=1;i<=n;i++){
		cout << a[i] << " " << b[i] << "\n";
	}
	*/
	int dp[N][2];
	memset(dp,0,sizeof(dp));
	int ans=-inf;
	for(int i=1;i<=n;i++){
		dp[i][1]=max(dp[i][1],dp[i-1][0]+a[i]+b[i]);
		dp[i][1]=max(dp[i][1],dp[i-1][1]+b[i]);
		ans=max(ans,dp[i][1]-a[i]);
	}
	cout << ans << "\n";
	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...