Submission #968539

#TimeUsernameProblemLanguageResultExecution timeMemory
968539duckindogBoxes with souvenirs (IOI15_boxes)C++17
100 / 100
467 ms293956 KiB
#include <bits/stdc++.h> using namespace std; #ifndef LOCAL #include "boxes.h" #endif const int N = 10'000'000 + 10; long long f[2][N]; long long delivery(int n, int k, int l, int p[]) { for (int i = 1; i <= n; ++i) { f[0][i] = f[0][max(0, i - k)] + p[i - 1] + min(p[i - 1], l - p[i - 1]); } for (int i = n; i >= 1; --i) { f[1][i] = f[1][min(n + 1, i + k)] + l - p[i - 1] + min(p[i - 1], l - p[i - 1]); } long long answer = 1'000'000'000'000'000'000; for (int i = 0; i <= n; ++i) answer = min(answer, f[0][i] + f[1][i + 1]); return answer; } #ifdef LOCAL int n, k, l; int p[N]; int32_t main() { cin.tie(0)->sync_with_stdio(0); cin >> n >> k >> l; for (int i = 0; i < n; ++i) cin >> p[i]; cout << delivery(n, k, l, p) << "\n"; } #endif
#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...