제출 #588431

#제출 시각아이디문제언어결과실행 시간메모리
588431lorenzoferrari선물상자 (IOI15_boxes)C++17
50 / 100
2070 ms19840 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; using LL = long long; inline vector<LL> linear_cost(int n, int k, int p[]) { vector<LL> ans(n+1); ans[0] = 0; for (int i = 1; i <= n; ++i) { ans[i] = 2 * p[i-1] + ans[max(0, i - k)]; ans[i] = max(ans[i], ans[i-1]); // case p[n-1] = 0... } return ans; } LL delivery(int n, int k, int l, int p[]) { auto ca = linear_cost(n, k, p); for (int i = 0; i < n; ++i) p[i] = (p[i] ? l - p[i] : 0); reverse(p, p + n); auto cb = linear_cost(n, k, p); LL ans = 1e18; for (int i = 0; i <= n; ++i) { ans = min(ans, ca[i] + cb[n - i]); } for (int a = 0; a < n; ++a) { for (int b = a; b < n && b - a < k; ++b) { ans = min(ans, l + ca[a] + cb[n - b - 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...