제출 #936325

#제출 시각아이디문제언어결과실행 시간메모리
936325DobromirAngelovArt Exhibition (JOI18_art)C++14
100 / 100
148 ms26804 KiB
#include<bits/stdc++.h> #define endl '\n' #define fi first #define se second using namespace std; const int MAXN=5e5+5; int n; pair<long long,int> a[MAXN]; long long d[MAXN]; int suffMax[MAXN]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n; for(int i=1;i<=n;i++) cin>>a[i].fi>>a[i].se; sort(a+1,a+n+1); for(int i=1;i<=n;i++) d[i]=d[i-1]+a[i].se; for(int i=1;i<=n;i++) d[i]-=a[i].fi; suffMax[n]=n; for(int i=n-1;i>=1;i--) { suffMax[i]=suffMax[i+1]; if(d[i]>d[suffMax[i+1]]) suffMax[i]=i; } long long ans=a[n].se; for(int i=1;i<n;i++) { long long cur=a[i].se; cur=max(cur, d[suffMax[i+1]]-d[i-1]-a[i-1].fi+a[i].fi); ans=max(ans, cur); } 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...