Submission #226068

#TimeUsernameProblemLanguageResultExecution timeMemory
226068VEGAnnAliens (IOI16_aliens)C++14
60 / 100
2092 ms356712 KiB
# include "aliens.h" #include <bits/stdc++.h> #define pll pair<ll,ll> #define L first #define R second #define M make_pair #define sz(x) (int)x.size() using namespace std; typedef long long ll; typedef std::vector<int> V; vector<pll> seg,Seg; ll oo=1e18,cur; vector<vector<ll> > f; ll sqr(ll x) { if (x>=0ll) return x*x; else return 0ll; } bool cmp(pll x,pll y){ if (x.L==y.L) return x.R>y.R; else return x.L<y.L; } void Calc(int j,int li,int ri,int l,int r){ if (li>ri) return; int i=(li+ri)>>1,opt; for (int I=l;I<=r;I++) if (f[I][j-1]!=oo){ cur=f[I][j-1]+sqr(Seg[i].R-Seg[I+1].L+1ll)-sqr(Seg[I].R-Seg[I+1].L+1ll); if (f[i][j]>cur){ f[i][j]=cur; opt=I; } } Calc(j,li,i-1,l,opt); Calc(j,i+1,ri,opt,r); } long long take_photos (int n, int m, int k, V r, V c) { m+=m; seg.clear(); Seg.clear(); for (int i=0;i<n;i++) seg.push_back(M(min(r[i],c[i]),max(r[i],c[i]))); seg.push_back(M(-1,-1)); sort(seg.begin(),seg.end(),cmp); Seg.push_back(seg[0]); for (int i=1;i<sz(seg);i++) if (Seg.back().R<seg[i].R) Seg.push_back(seg[i]); n=sz(Seg)-1; f.clear(); f.resize(n+1); for (int i=0;i<=n;i++){ f[i].resize(k+1); for (int j=0;j<=k;j++) f[i][j]=oo; } for (int j=0;j<=k;j++) f[0][j]=0ll; for (int j=1;j<=k;j++) Calc(j,1,n,0,n-1); return f[n][k]; }

Compilation message (stderr)

aliens.cpp: In function 'void Calc(int, int, int, int, int)':
aliens.cpp:33:9: warning: 'opt' may be used uninitialized in this function [-Wmaybe-uninitialized]
     Calc(j,li,i-1,l,opt);
     ~~~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...