이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
int dist(int L, int l, int r){
if (l>r) swap(l, r);
return min(r-l, L+l-r);
}
int calc(int L, int l, int r){
return dist(L, 0, l)+r-l+dist(L, 0, r);
}
const int MN=1e7+10;
long long f[MN], g[MN];
long long delivery(int N, int K, int L, int p[]) {
K=min(K, N);
deque<int> dq;
dq.push_back(0);
g[0]=f[0]+dist(L, 0, p[0])-p[0];
f[0]=0;
for (int i=1; i<=N; ++i){
while (dq.size() && i-dq.front()>K) dq.pop_front();
f[i]=g[dq.front()]+p[i-1]+dist(L, 0, p[i-1]);
if (i<N){
g[i]=f[i]-p[i]+dist(L, 0, p[i]);
while (dq.size() && g[dq.back()]>=g[i]) dq.pop_back();
dq.push_back(i);
}
}
return f[N];
}
# | 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... |