Submission #757504

#TimeUsernameProblemLanguageResultExecution timeMemory
757504beepbeepsheepArt Exhibition (JOI18_art)C++17
100 / 100
221 ms28596 KiB
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;

typedef tree<long long, null_type, less_equal<>,
        rb_tree_tag, tree_order_statistics_node_update>
        ordered_set;
#define ll long long
#define ii pair<ll,ll>

#ifndef DEBUG
#define cerr if (0) cerr
#define endl '\n'
#endif

const ll inf=1e15;
const ll maxn=5e5+5;
const ll mod=1e9+7;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

ii arr[maxn];
ll pref[maxn];
ll mn[maxn];
int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	ll n; cin>>n;
	for (int i=1;i<=n;i++){
		cin>>arr[i].first>>arr[i].second;
	}
	sort(arr+1,arr+1+n);
	ll ans=0;
	for (int i=1;i<=n;i++){
		pref[i]=arr[i].second-arr[i+1].first+arr[i].first;
		pref[i]+=pref[i-1];
		mn[i]=min(pref[i],mn[i-1]);
		ans=max(ans,arr[i].second+pref[i-1]-mn[i-1]);
	}
	cout<<ans;
	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...