Submission #1311711

#TimeUsernameProblemLanguageResultExecution timeMemory
1311711andreidumitracheExam (eJOI20_exam)C++20
0 / 100
1091 ms668 KiB
#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 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...