#include <bits/stdc++.h>
using namespace std;
const int MAXN = 5000;
int dp[MAXN + 1] , a[MAXN + 1] , b[MAXN + 1];
map< int , int >f;
int main() {
int n , i , j , maxi , cnt;
cin >> n;
for( i = 1 ; i <= n ; i++ )
cin >> a[i];
for( i = 1 ; i <= n ; i++ )
cin >> b[i];
maxi = 0;
for( i = 1 ; i <= n ; i++ ) {
maxi = cnt = 0;
for( j = i ; j >= 1 ; j-- ) {
f[b[j]]++;
maxi = max( maxi , a[j] );
dp[i] = max( dp[i] , f[maxi] + dp[j - 1] );
}
f.clear();
}
cout << dp[n] << '\n';
return 0;
}
| # | 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... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |