Submission #782690

#TimeUsernameProblemLanguageResultExecution timeMemory
782690Sohsoh84Boxes with souvenirs (IOI15_boxes)C++17
0 / 100
1 ms308 KiB
#include "boxes.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const ll MAXN = 2e7 + 10; ll ps[MAXN], ss[MAXN]; long long delivery(int N, int K, int L, int p[]) { sort(p, p + N); ll x = p[N - 1]; x = min(x, ll(L - p[0])); for (int i = 0; i < N - 1; i++) x = min(x, ll(p[i]) + L - p[i + 1]); return 2 * x; for (int i = 0; i < N; i++) { ps[i] = numeric_limits<ll>::max(); if (i < K) ps[i] = 2 * p[i]; else { for (int j = i - 1; j >= i - K; j--) ps[i] = min(ps[i], ps[j] + 2 * p[i]); } } ss[N] = 0; for (int i = N - 1; i >= 0; i--) { ss[i] = numeric_limits<ll>::max(); for (int j = i + 1; j <= i + K; j++) ss[i] = min(ss[i], ss[j] + 2 * (L - p[i])); } ll ans = ps[N - 1]; for (int i = 0; i < N; i++) ans = min(ans, ps[i] + ss[i + 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...