Submission #1226132

#TimeUsernameProblemLanguageResultExecution timeMemory
1226132overwatch9Financial Report (JOI21_financial)C++20
0 / 100
80 ms1604 KiB
#include <bits/stdc++.h> using namespace std; int n, d; const int maxn = 401; int dp[maxn][maxn][maxn]; bool ready[maxn][maxn][maxn]; int nums[maxn]; int solve(int i, int lst, int id_mx) { if (i > n) return 0; if (ready[i][lst][id_mx]) return dp[i][lst][id_mx]; int ans = 0; // choose i if (nums[i] > nums[id_mx]) ans = solve(i+1, i, i) + 1; else ans = solve(i+1, i, id_mx); // don't choose i if (i - lst < d || lst == 0) ans = max(ans, solve(i+1, lst, id_mx)); dp[i][lst][id_mx] = ans; ready[i][lst][id_mx] = true; return ans; } int main() { cin >> n >> d; for (int i = 1; i <= n; i++) cin >> nums[i]; cout << solve(1, 0, 0) << '\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...