Submission #1311713

#TimeUsernameProblemLanguageResultExecution timeMemory
1311713andreidumitracheExam (eJOI20_exam)C++20
0 / 100
1096 ms684 KiB
#include <bits/stdc++.h>
using namespace std;

const int MAXN = 1e5;

int dp[MAXN + 1] , a[MAXN + 1] , b[MAXN + 1];
map< int , int >f;
int main() {
    int n , i , j , maxi;
    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 = 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] );
        }
        //cout << i << ' ' << dp[i] << '\n';
        for( j = i ; j >= 1 ; j-- )
            f[b[j]]--;
    }
    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...