Submission #71229

#TimeUsernameProblemLanguageResultExecution timeMemory
71229fallingstarBoxes with souvenirs (IOI15_boxes)C++14
0 / 100
2 ms420 KiB
#include "boxes.h" #include <iostream> #include <algorithm> using namespace std; #define long long long const int N = 2e7 + 2; long fsuff[N], fpref[N]; long delivery(int n, int k, int L, int p[]) { int head = 0; while (head < n && p[head] == 0) ++head; long res = (long) (n - head + k - 1) / k * L; for (int i = n - 1; i >= head; --i) fsuff[i] = fsuff[i + k] + (L - p[i]) * 2; // for (int i = head; i < n; ++i) // cerr << fsuff[i] << ' '; // cerr << '\n'; int full = 0; while (full * k <= n - head && fsuff[head + (full + 1) * k] + L < fsuff[head + full * k]) ++full; res = min(res, fsuff[head + full * k] + full * k); for (int i = head; i < n; ++i) { fpref[i] = (i < k ? 0 : fpref[i - k]) + p[i] * 2; #define eval(x) (fsuff[i + 1 + (x) * k] + (long) (x) * L) while (full > 0 && eval(full - 1) < eval(full)) --full; res = min(res, fpref[i] + eval(full)); #undef eval } return res; }
#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...