Submission #712515

#TimeUsernameProblemLanguageResultExecution timeMemory
712515Username4132Boxes with souvenirs (IOI15_boxes)C++14
0 / 100
1 ms340 KiB
#include "boxes.h" #include<iostream> using namespace std; using ll = long long; #define forn(i, n) for(int i=0; i<(int)n; ++i) const int MAXN=10000010; int le[MAXN], ri[MAXN], cnl=0, cnr=0; ll dpl[MAXN], dpr[MAXN]; long long delivery(int N, int K, int L, int p[]) { forn(i, N){ if(p[i]<(L>>1)) le[cnl++]=p[i]; else ri[cnr++]=L-p[i]; } forn(i, cnl){ if(i<K) dpl[i]=le[i]; else dpl[i]=dpl[i-K]+le[i]; } forn(i, cnr){ if(i<K) dpr[i]=ri[i]; else dpr[i]=dpr[i-K]+ri[i]; } ll ans = ((cnl? dpl[cnl-1] : 0)+ (cnr? dpr[cnr-1] : 0))<<1; forn(i, K+1){ int il=cnl-1-i, ir=cnr-1-K+i; ans = min(ans, (((il<0? 0 : dpl[il]) + (ir<0? 0 : dpr[ir]))<<1) + L); } return ans; }
#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...