#include <bits/stdc++.h>
using namespace std;
int dp_func(int i, vector<int>& a, vector<int>& dp) {
if(dp[i] != -1) return dp[i];
int mx = 1;
for(int j = 0; j < i; j++) {
if(a[j] <= a[i]) {
mx = max(mx, dp_func(j, a, dp) + 1);
}
}
dp[i] = mx;
return mx;
}
int main() {
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i++) cin >> a[i];
vector<int> dp(n, -1);
int mx = 0;
for(int i = 0; i < n; i++) mx = max(mx, dp_func(i, a, dp));
cout << mx << endl;
}
| # | 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... |