#include "boxes.h"
#include <bits/stdc++.h>
#define ll long long
#define oo 1e9
#define pii pair<int, int>
using namespace std;
const int MAX = 1005;
ll dp[MAX][MAX];
int arr[MAX];
int n, k, s;
ll rec(int l, int r){
if(dp[l][r] != -1) return dp[l][r];
if(r - l + 1 <= k) return min({2 * arr[r], 2 * (s - arr[l]), s});
ll ans = oo;
if(arr[l] == 0) ans = rec(l + 1, r);
else ans = min(rec(l + k, r) + min({arr[l + k - 1] * 2, (s - arr[l]) * 2, s}), rec(l, r - k) + min({(s - arr[r - k + 1]) * 2, arr[r] * 2, s}));
return dp[l][r] = ans;
}
ll delivery(int N, int K, int L, int p[]){
n = N;
k = K;
s = L;
for(int i = 1; i <= n; i++) arr[i] = p[i - 1];
memset(dp, -1, sizeof(dp));
return rec(1, n);
}
# | 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... |