# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1203088 | lance0 | Boxes with souvenirs (IOI15_boxes) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
long long delivery(long long N, long long K, long long L, long long positions[]) {
long long rot1[N+1] = {};
long long rot2[N] = {};
for (int i = 0; i < min(K,N); i++) {
//wack st5 edge case
rot1[i+1] = 2*positions[i];
rot2[i+1] = 2*(L-positions[N-i-1]);
}
for (int i = K; i < N; i++) {
//wack st5 edge case
int x = (i-1)/K;
x *= K;
rot1[i+1] = rot1[x]+2*positions[i];
rot2[i+1] = rot2[x]+2*(L-positions[N-i-1]);
}
long long ans = 1e18;
for (int i = 0; i <= N; i++) {
ans = min(ans,rot1[i]+rot2[N-i]);
}
for (int i = 0; i <= N-K; i++) {
ans = min(ans,rot1[i]+rot2[N-i-K]+L);
}
}