Submission #706422

#TimeUsernameProblemLanguageResultExecution timeMemory
706422NonozeBoxes 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) { cnt++; if (cnt==K) { comp+=S[i+K-1]*2; cnt=0; } } if (cnt!=0) { comp+=S[cnt]; } cnt=0; for (int i = midr; i < N; ++i) { cnt++; if (cnt==K) { comp+=(L-S[i-K+1])*2; cnt=0; } } if (cnt!=0) { comp+=(L-S[N-cnt])*2; } return comp; } long long delivery(int N, int K, int L, int p[]) { sort(p, p+N); int moit=L/2, mid=0; for (int i = 0; i < N; ++i) { if (p[i]<=moit) { mid=p[i]; } } int l=mid, r=mid+1, comp=L*2; 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(comp+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...