제출 #782677

#제출 시각아이디문제언어결과실행 시간메모리
782677Sohsoh84선물상자 (IOI15_boxes)C++17
10 / 100
1 ms340 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll, ll> pll; #define sep ' ' #define debug(x) cerr << #x << ": " << x << endl; const ll MAXN = 1e7 + 10; ll ps[MAXN], ss[MAXN], rem[MAXN], dp2[MAXN], n, k, l, f[MAXN]; // TODO: reset rem and dp2 inline void solve(ll* dp1) { dp1[0] = 0; dp2[0] = 0; rem[0] = k; for (int i = 1; i <= n; i++) { dp1[i] = dp1[i - 1] + 2 * f[i]; for (int j = i - 1; j >= max(0ll, i - k); j--) { dp1[i] = min(dp1[i], dp1[j] + 2 * f[i]); } } } ll delivery(int N, int K, int L, int p[]) { n = N, k = K, l = L; for (int i = 0; i < n; i++) f[i] = p[i]; f[n] = 0; sort(f, f + n + 1); solve(ps); for (int i = 0; i <= n; i++) f[i] = (l - p[i]); f[n] = 0; sort(f, f + n + 1); solve(ss); ll ans = min(ps[n], ss[n]); for (int i = 1; i < n; i++) ans = min(ans, ps[i] + ss[n - i]); 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...