Submission #993785

#TimeUsernameProblemLanguageResultExecution timeMemory
993785phoenix선물상자 (IOI15_boxes)C++17
0 / 100
1 ms348 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; using ll = long long; const int N = 10000010; ll pre[N]; ll suf[N]; ll delivery(int n, int k, int L, int p[]) { ll res = 1e18; for (int i = 0; i < n; i++) { pre[i] = (2 * p[i]); if (i >= k) pre[i] += pre[i - k]; } for (int i = n - 1; i >= 0; i--) { suf[i] = (2 * (L - p[i])); if (i < n - k) suf[i] += suf[i + k]; } auto value = [&](int l, int r) -> long long { ll val = 0; if (l >= 0) val += pre[l]; if (r < n) val += suf[r]; val += 1ll * ((r - l - 1) + k - 1) / k * L; return val; }; int r = 0; for (int l = -1; l < n; l++) { while (r < n && 2 * (p[r] - p[l]) < L) r++; res = min(res, value(l, r)); } 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...