Submission #237414

#TimeUsernameProblemLanguageResultExecution timeMemory
237414haengsyoArt Exhibition (JOI18_art)C++14
100 / 100
300 ms21496 KiB
#pragma GCC optimize("O3") #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 long long ll; tree<int,int,greater<int>,rb_tree_tag,tree_order_statistics_node_update> map_t; #define FOR(i, a, b) for (int i = (a); i < (b); i++) #define F0R(i, a) for(int i = 0; i < (a); ++i) #define sz(x) (int)x.size() #define SORT(x) sort(x.begin(),x.end()) #define ERASE(x) x.erase(unique(x.begin(),x.end()),x.end()) #define POSL(x,v) (lower_bound(x.begin(),x.end(),v)-x.begin()) #define POSU(x,v) (upper_bound(x.begin(),x.end(),v)-x.begin()) #define REV(x) reverse(x.begin(),x.end()) int dx[]={-1,0,1,0}; int dy[]={0,-1,0,1}; const int mxN=5e5+5; const ll INF=1e17; pair<ll,int> arr[mxN]; ll pref[mxN]; int n; ll t[4*mxN]; void build(int v,int tl,int tr) { if(tl==tr) { t[v]=pref[tl]; return; } int mid=tl+(tr-tl)/2; build(2*v,tl,mid); build(2*v+1,mid+1,tr); t[v]=max(t[2*v],t[2*v+1]); } ll qry(int v,int tl,int tr,int l,int r) { if(tl>r || tr<l) return -INF; if(tl>=l && tr<=r) return t[v]; int mid=tl+(tr-tl)/2; return max(qry(2*v,tl,mid,l,r),qry(2*v+1,mid+1,tr,l,r)); } int main() { // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); ios_base::sync_with_stdio(false); cin.tie(NULL); cin >> n; F0R(i,n) cin >> arr[i].first >> arr[i].second; sort(arr,arr+n); pref[0]=arr[0].second; FOR(i,1,n) pref[i]=pref[i-1]+arr[i].second; F0R(i,n) pref[i]-=arr[i].first; build(1,0,n-1); ll best=-INF; F0R(i,n) { ll val=qry(1,0,n-1,i,n-1); ll bef=0; if(i!=0) bef=pref[i-1]+arr[i-1].first; best=max(best,val+arr[i].first-bef); } cout << best; 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...