#include "boxes.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll INF = 1e18;
ll delivery(int n, int k, int len, int p[]) {
ll ans = INF;
ll dpL[n+1]; dpL[0] = 0;
ll dpR[n+1]; dpR[0] = 0;
for (int i=0; i<=n; i++) {
if (i != 0 and i <= k) dpL[i] = 2*p[i-1];
else if (i != 0) dpL[i] = 2*p[i-1] + dpL[i-k];
}
for (int j=0; j<=n; j++) {
if (j != 0 and j <= k) dpR[j] = 2*(len - p[n-j]);
else if (j != 0) dpR[j] = 2LL*(len-p[n-j]) + dpR[j-k];
}
int pt = 0;
for (int i=0; i<n; i++) {
if (p[i] <= len / 2) pt = i;
else break;
}
for (int i=max(0, pt - k - 5); i<=min(n, pt); i++) {
for (int j=max(0, n-pt-k-5); j<=min(n-i, n-pt-1); j++) {
ll tmp = (ll)((n - i - j + k - 1) / k) * (ll)len;
tmp += dpL[i] + dpR[j];
// cout << i << ' ' << j << ' ' << tmp << endl;
ans = min(ans, tmp);
}
// cout << endl << endl;
}
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... |