이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
ll delivery(int n, int k, int L, int p[]) {
vector<ll>pref(n,0),suff(n,0);
for(int i=0;i<n;i++){
pref[i] = 2LL*p[i];
if(i-k>=0)pref[i]+=pref[i-k];
}
for(int i=n-1;i>=0;i--){
suff[i] = 2LL*(L-p[i]);
if(i+k<n)suff[i]+=suff[i+k];
}
ll ans = 1e18;
ans = min(ans,suff[0]);
ans = min(ans,pref[n-1]);
for(int i=0;i+1<n;i++)ans = min(ans,pref[i] + suff[i+1]);
for(int i=k-1;i<n;i++){
ll cost = L;
if(i-k>=0)cost+=pref[i-k];
if(i+1<n)cost+=suff[i+1];
ans = min(ans,cost);
}
return ans;
}
/*
int main()
{
int n,k,l;
cin>>n>>k>>l;
int p[n];
for(int i=0;i<n;i++)cin>>p[i];
cout<<delivery(n,k,l,p);
}
*/
# | 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... |