# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1227105 | LeonidCuk | Boxes with souvenirs (IOI15_boxes) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
//#include "box.h"
using namespace std;
long long delivery(int n,int k,int l,int v[])
{
vector<long long>pref(n),suf(n);
for(int i=0;i<n;i++)
{
pref[i]=2*v[i];
if(i>=k)
{
pref[i]+=pref[i-k];
}
}
for(int i=n-1;i>=0;i--)
{
suf[i]=2*(l-v[i]);
if(n-i-1>=k)
{
suf[i]+=suf[i+k];
}
}
long long ans=min(suf[0],pref[n-1]),x=l;
if(n==k)ans=min(ans,x);
for(int i=0;i<n-1;i++)
{
ans=min(pref[i]+suf[i+1],ans);
if(i+k+1>=n)ans=min(ans,x+pref[i]);
else ans=min(pref[i]+x+suf[i+k+1],asn);
}
return ans;
}