This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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... |