Submission #1049787

#TimeUsernameProblemLanguageResultExecution timeMemory
1049787vjudge1Art Exhibition (JOI18_art)C++17
30 / 100
1045 ms8660 KiB
#include <bits/stdc++.h> #define f first #define s second using namespace std; int n; long long sm[1000000], mn[1000000], mx[1000000], s[1000000], mox=-INT64_MAX; pair<long long, int> a[500000]; void bt(int tl, int tr, int v){ if(tl==tr){ sm[v]=a[tl].s; mx[v]=a[tl].f; mn[v]=mx[v]; s[v]=sm[v]; }else{ int tm=(tl+tr)/2; bt(tl, tm, v*2); bt(tm+1, tr, v*2+1); sm[v]=sm[v*2]+sm[v*2+1]; mx[v]=max(mx[v*2], mx[v*2+1]); mn[v]=min(mn[v*2], mn[v*2+1]); s[v]=sm[v]-mx[v]+mn[v]; } mox=max(mox, s[v]); } pair<long long, pair<long long, long long>> get(int l, int r, int v, int tl, int tr) { if(l<=tl&&r>=tr){ return {sm[v],{mx[v], mn[v]}}; } if(l>tr||r<tl){ return {0,{0,INT64_MAX}}; } int tm=(tl+tr)/2; pair<long long, pair<long long, long long>> p1=get(l,r,v*2,tl,tm),p2=get(l,r,v*2+1,tm+1,tr); p1.f=p1.f+p2.f;p1.s.f=max(p1.s.f, p2.s.f);p1.s.s=min(p1.s.s, p2.s.s); mox=max(mox, p1.f-p1.s.f+p1.s.s); long long shm=mox; return p1; } int main() { cin >> n; for(int i=0; i<n; i++){ cin >> a[i].f >> a[i].s; } sort(a, a+n); bt(0, n-1, 1); for(int i=0; i<n-1; i++){ for(int j=i+1; j<n; j++){ get(i, j, 1, 0, n-1); } } cout << mox; return 0; }

Compilation message (stderr)

art.cpp: In function 'std::pair<long long int, std::pair<long long int, long long int> > get(int, int, int, int, int)':
art.cpp:36:15: warning: unused variable 'shm' [-Wunused-variable]
   36 |     long long shm=mox;
      |               ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...