Submission #1271931

#TimeUsernameProblemLanguageResultExecution timeMemory
1271931rtriThe short shank; Redemption (BOI21_prison)C++20
0 / 100
1 ms404 KiB
#include <bits/stdc++.h> using namespace std; int n, d, t; vector<int> times; vector<vector<vector<int>>> memo; int dp(int idx, int riots, int matress) { if (memo[idx][riots][matress] != -1) return memo[idx][riots][matress]; int ans = 2e9; if (0 < riots) ans = min(ans, max(dp(idx - 1, riots - 1, matress), times[idx])); if (0 < matress) ans = min(ans, max(dp(idx - 1, riots - 1, matress - 1), times[idx])); return ans; } int main() { cin >> n >> d >> t; times.resize(n); for (int i = 0; i < n; i++) cin >> times[i]; memo.resize(n, vector<vector<int>>(n + 1, vector<int>(n, -1))); int ans = -1; for (int answer = 0; answer <= n; answer++) if (dp(n, answer, d) <= t) { ans = answer; break; } cout << ans << endl; return 0; }
#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...