#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define rep(i,a,b) for (int i = a; i <= b; i++)
#define per(i,a,b) for (int i = a; i >= b; i--)
#define pb push_back
long long delivery(int N, int K, int L, int p[]) {
vector<int> np;
vector<ll> dp(K,0LL), sum(K,0LL);
vector<ll> dp2(K,0LL), sum2(K,0LL);
per(i,N-1,0LL) np.pb(p[i]);
per(i,N-1,0LL) np.pb(L-p[i]);
rep(i,0,N-1) {
dp[i%K]+=((i+K)/K)*np[i];
sum[i%K]+=np[i];
}
ll ans = 2*dp[0];
rep(r,N,2*N-1) {
int l = (r)%N;
dp[l%K] -= sum[l%K];
sum[l%K] -= np[l];
dp2[r%K]+=np[r]+sum2[r%K];
sum2[r%K]+=np[r];
ans = min(ans, 2*(dp[(l+1)%K] + dp2[r%K]));
}
if(K==N) ans = min(ans, (ll)L);
else ans = min(ans, (ll)min(L+2*np[N+K-1],L+2*np[K]));
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... |