#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MXN = 1e7+4;
int a[MXN], b[MXN], sza, szb;
ll dpa[MXN], dpb[MXN];
ll delivery(int N, int K, int L, int p[]) {
if(L==1) return 0;
int lim = (L+1)/2-1;
for(int i=0; i<N; i++)
if(p[i]) {
if(p[i]<=lim)
a[sza++] = p[i];
else
b[szb++] = p[i];
}
for(int i=0; i<sza; i++) {
dpa[i] = 2*a[i];
if(i>=K) dpa[i] += dpa[i-K];
}
reverse(b, b+szb);
for(int i=0; i<szb; i++) {
dpb[i] = 2*(L-b[i]);
if(i>=K) dpb[i] += dpb[i-K];
}
ll ans = (sza ? dpa[sza-1] : 0) + (szb ? dpb[szb-1] : 0);
for(int i=0, j; i<=sza && i<=K; i++) {
j = min(K-i, szb);
ans = min(ans, L
+ (i==sza ? 0 : dpa[sza-1-i])
+ (j==szb ? 0 : dpb[szb-1-j]));
}
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... |