Submission #1212225

#TimeUsernameProblemLanguageResultExecution timeMemory
1212225kunzaZa183Boxes with souvenirs (IOI15_boxes)C++20
100 / 100
350 ms196096 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; long long delivery(int N, int K, int L, int p[]) { vector<long long> left(N), right(N); for (int i = 0; i < N; i++) { if (i < K) { left[i] = 2ll * p[i]; } else { left[i] = 2ll * p[i] + left[i - K]; } } for (int i = N - 1; i >= 0; i--) { if (i + K >= N) { right[i] = 2ll * (L - p[i]); } else { right[i] = 2ll * (L - p[i]) + right[i + K]; } } long long ans = LLONG_MAX; ans = min(left[N - 1], right[0]); for (int i = 0; i + 1 < N; i++) ans = min(ans, left[i] + right[i + 1]); if (N == K) { ans = min(ans, (long long)L); } else if (N > K) { ans = min({ans, L + right[K], L + left[N - K - 1]}); for (int i = 0; i + K + 1 < N; i++) ans = min(ans, L + left[i] + right[i + K + 1]); } return ans; }
#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...