# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
319541 | 2020-11-05T13:38:09 Z | tjdgus4384 | Boxes with souvenirs (IOI15_boxes) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> #include "boxes.h" using namespace std; long long delivery(int N, int K, int L, int positions[]){ int i, ans = 0; for(i = 0;i + K - 1 < N;i += K){ if(positions[i] > L/2) ans += (L-positions[i])*2; else if(positions[i + K - 1] < L/2) ans += (positions[i + K - 1])*2; else{ for(int j = i+1;j <= i + K - 1;j++){ if(positions[j]-positions[j-1] > L/2){ ans += (L-positions[j]+positions[j-1])*2; goto next; } } ans += L; } next:; } if(i == N) return ans; if(positions[i] > L/2) ans += (L-positions[i])*2; else if(positions[N-1] < L/2) ans += positions[N-1] * 2; else{ for(int j = i+1;j <= N - 1;j++){ if(positions[j]-positions[j-1] > L/2){ ans += (L-positions[j]+positions[j-1])*2; goto next; } } ans += L; } next:; return ans; }