#include "boxes.h"
#include <bits/stdc++.h>
#define ll long long
#define rep(a,b,c) for(ll a=b; a<c; a++)
#define repr(a,b,c) for(ll a=b-1; a>c-1; a--)
#define pb push_back
#define all(a) a.begin(), a.end()
using namespace std;
using vll = vector<ll>;
const ll inf = 1e18;
ll delivery(int n, int k, int l, int *p) {
ll N=n, K=k, L=l;
vll vl, vr, v(K);
ll mn=inf, ans=inf, ck;
fill(all(v),inf);
repr(i,N,0){
if((L-p[i])>=(p[i])) break;
if(vr.size()<K) vr.pb(2*(L-p[i]));
else vr.pb(vr[vr.size()-K]+2*(L-p[i]));
mn=min(mn,vr.back()+((i)/K)*L);
v[i%K]=min(v[i%K],vr.back()+((i)/K)*L);
}
ans=min(ans,min({mn+L,v[0],((N+K-1)/K)*L}));
rep(i,0,N){
if((L-p[i])<(p[i])) break;
if(vl.size()<K) vl.pb(2*p[i]);
else vl.pb(vl[vl.size()-K]+2*p[i]);
ck=((i+1+K-1)/K)*L;
ans=min(ans,min({mn+L-ck,v[(i+1)%K]-ck,(((N-i-1)+K-1)/K)*L})+vl.back());
}
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... |