제출 #1226136

#제출 시각아이디문제언어결과실행 시간메모리
1226136overwatch9Financial Report (JOI21_financial)C++20
28 / 100
197 ms160780 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]; nums[0] = -1; 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...