Submission #1197742

#TimeUsernameProblemLanguageResultExecution timeMemory
1197742TahirAliyevBoxes with souvenirs (IOI15_boxes)C++17
10 / 100
11 ms8264 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...