이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "boxes.h"
#include <bits/stdc++.h>
#define f(x) min(L-p[x],p[x])
using namespace std;
typedef long long ll;
ll s1[10000010], s2[10000010];
long long delivery(int N, int K, int L, int p[]) {
int i, j;
K=min(N,K);
for (i=1; i<=min(K,N-1); i++) { for (j=i; j<N; j+=K) s1[i]+=(ll)(p[j]+f(j))*2ll; }
for (i=N-2; i>=max(0,N-K-1); i--) { for (j=i; j>=0; j-=K) s2[i]+=(ll)(L-p[j]+f(j))*2ll; }
ll ans=(1ll<<62), s;
for (i=0; i<K; i++) {
s=s2[(i+1)%K]+p[i]+f(i);
ans=min(s, ans);
for (j=i+K; i<N; i+=K) {
s+=(ll)(p[j]+f(j));
s-=(ll)(N-p[j-K+1]+f(j-K+1));
ans=min(s,ans);
}
}
for (i=N-1; i>=N-K; i--) {
s=s1[(i+K-1)%K]+(N-p[i]+f(i));
ans=min(s, ans);
for (j=i-K; j>=0; j-=K) {
s+=(ll)(N-p[j]+f(j));
s-=(ll)(p[j+K-1]+f(j+K-1));
ans=min(s,ans);
}
}
return ans;
}
# | 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... |