제출 #1321952

#제출 시각아이디문제언어결과실행 시간메모리
1321952888313666Exam (eJOI20_exam)C++20
0 / 100
1095 ms1592 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define _ <<' '<<
#define print(x) cout<<#x<<": "<<(x)<<'\n'

int n;
vector<int> a, b, dp;

int main(){
    cin.tie(0)->sync_with_stdio(0);
    cout.tie(0);
    cin>>n;
    a.resize(n);
    b.resize(n);
    dp.assign(n+1, 0);
    for (int i=0; i<n; i++) cin>>a[i];
    for (int i=0; i<n; i++) cin>>b[i];
    for (int i=0; i<n; i++) {
        int ct=0;
        dp[i+1]=max(dp[i+1], dp[i]);
        for (int j=i; j>=0; --j) {
            //cout<<i _ j<<'\n';
            if (a[j]>a[i]) break;
            if (b[j]==a[i]) {
                //print(i);
                //print(j);
                dp[i+1]=max(dp[i+1], dp[j]+(++ct));
            }
        }
        ct=0;
        for (int j=i+1; j<n; j++) {
            if (a[j]>a[i]) break;
            if (b[j]==a[i]) {
                dp[j+1]=max(dp[j+1], dp[i+1]+(++ct));
                //print(i);
                //print(j);
                //print(dp[j+1]);
                //print(dp[i+1]+(ct));
            }
        }
    }
    //for (int i=0; i<n; i++) print(dp[i]);
    cout<<dp[n]<<'\n';
}
#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...