#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 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... |