이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
const int nmax=1e7+42;
long long l[nmax],r[nmax];
long long delivery(int N, int K, int L, int positions[])
{
l[0]=0;
for(int i=1;i<=K;i++)
l[i]=positions[i-1]+min(positions[i-1],L-positions[i-1]);
for(int i=K+1;i<=N;i++)
l[i]=l[i-K]+positions[i-1]+min(positions[i-1],L-positions[i-1]);
r[N+1]=0;
for(int i=N;i>=1;i--)
r[i]=r[min(i+K,N+1)]+L-positions[i-1]+min(positions[i-1],L-positions[i-1]);
/*
for(int i=0;i<=N+1;i++)cout<<l[i]<<" ";cout<<endl;
for(int i=0;i<=N+1;i++)cout<<r[i]<<" ";cout<<endl;
*/
long long outp=1e18;
for(int i=0;i<=N;i++)
outp=min(outp,l[i]+r[i+1]);
return outp;
}
/*
int N=3,K=2,L=8;
int arr[3]={1,2,5};
int main()
{
cout<<delivery(N,K,L,arr)<<endl;
}
*/
# | 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... |