Submission #706434

#TimeUsernameProblemLanguageResultExecution timeMemory
706434NonozeBoxes with souvenirs (IOI15_boxes)C++14
0 / 100
1 ms340 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 p[]) { sort(p, p+N); int moit=L/2, mid=0; if (N==1) { return min((L-p[0])*2, p[0]*2); } for (int i = 0; i < N; ++i) { if (p[i]<=moit) mid=p[i]; } int l=mid, r=mid+1; for (int i = 0; i < K; ++i) { if (l<0) r++; else if (r>=N) l--; else if (abs(p[l]-moit)<abs(p[r]-moit)) { l--; } else { r++; } } return min(L+calc(p, l, r, K, N, L), min(calc(p, mid, mid+1, K, N, L), calc(p, mid-1, mid, K, N, L))); }
#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...