| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1289623 | azradudukalay | Norela (info1cup18_norela) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
int dp(int i, vector<int>& a, vector<int>& ddp) {
if(ddp[i] != -1) return ddp[i];
int mx = 1;
for(int j = 0; j < i; j++) {
if(a[j] <= a[i]) {
mx = max(mx, dp(j, a, dp) + 1);
}
}
ddp[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> ddp(n, -1);
int mx = 0;
for(int i = 0; i < n; i++) mx = max(mx, dp(i, a, ddp));
cout << mx << endl;
}
