Submission #706462

#TimeUsernameProblemLanguageResultExecution timeMemory
706462NonozeBoxes with souvenirs (IOI15_boxes)C++14
100 / 100
873 ms273136 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; /*int calc(int S[], int midl, int midr, int K, int N, int L) { int cnt=0, comp=0; for (int i = midl; i >= 0; --i) { if (cnt==0) comp+=S[i]*2; cnt++; if (cnt==K) cnt=0; } cnt=0; for (int i = midr; i < N; ++i) { if (cnt==0) comp+=(L-S[i])*2; cnt++; if (cnt==K)cnt=0; } return comp; }*/ long long delivery(int N, int K, int L, int S[]) { sort(S, S+N); if (N==1) { return min((L-S[0])*2, S[0]*2); } vector<long long> l, r; for (int i = 0; i < N; ++i) { l.push_back(min(2*S[i], L)); l.back()+=((i-K>=0)?l[i-K]:0); } for (int i = N-1; i >= 0; --i) { r.push_back(min(2*(L-S[i]), L)); r.back()+=(((N-1)-i-K>=0)?r[(N-1)-i-K]:0); } long long res=r[N-1]; for (int i = 0; i < N-1; ++i) { res=min(res, l[i]+r[N-i-2]); } return min(res, l[N-1]); }
#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...