이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
// pragmas
#ifndef DEBUG
#endif
#include <bits/stdc++.h>
#include "boxes.h"
// #define int long long
using ll = long long;
using namespace std;
long long delivery(int N, int K, int L, int p[]) {
vector<ll> cost_pref(N, 0);
for (int i=0; i<N; i++) {
if (i>=K) cost_pref[i] = cost_pref[i-K];
cost_pref[i] += 2*p[i];
}
vector<ll> cost_suff(N, 0);
for (int i=N-1; i>=0; i--) {
if (i+K < N) cost_suff[i] = cost_suff[i+K];
cost_suff[i] += 2*(L-p[i]);
}
// for (auto &x : cost_pref) {
// cerr << x << " ";
// }
ll res = min(cost_pref[N-1], cost_suff[0]);
res = min(res, (ll)L+cost_suff[min(N-1, K)]);
res = min(res, (ll)L+cost_pref[min(N-1, N-K)]);
for (int i=0; i<N; i++) {
res = min(res, cost_pref[i]+(ll)L+cost_suff[min(N-1, i+K+1)]);
res = min(res, cost_pref[i]+cost_suff[min(N-1, i+1)]);
}
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |