Submission #1192407

#TimeUsernameProblemLanguageResultExecution timeMemory
1192407lopkusFinancial Report (JOI21_financial)C++20
28 / 100
4101 ms1114112 KiB
#include <bits/stdc++.h> void solve() { int n, d; std::cin >> n >> d; std::vector<int> a(n + 1); for(int i = 1; i <= n; i++) { std::cin >> a[i]; } // a[i] <= n std::vector<int> compres; for(int i = 1; i <= n; i++) { compres.push_back(a[i]); } sort(compres.begin(), compres.end()); compres.erase(unique(compres.begin(), compres.end()), compres.end()); for(int i = 1; i <= n; i++) { a[i] = lower_bound(compres.begin(), compres.end(), a[i]) - compres.begin() + 1; } std::vector<std::vector<int>> dp(n + 1, std::vector<int>(n + 1)); for(int i = 1; i <= n; i++) { for(int j = i - 1; j >= std::max(0, i - d); j--) { for(int val = 0; val <= n; val++) { if(a[i] > val) { dp[i][a[i]] = std::max(dp[i][a[i]], dp[j][val] + 1); } else { dp[i][val] = std::max(dp[i][val], dp[j][val]); } } } } std::cout << *max_element(dp[n].begin(), dp[n].end()); } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int t = 1; //std::cin >> t; while (t--) { solve(); } 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...