Submission #756548

#TimeUsernameProblemLanguageResultExecution timeMemory
756548tibinyteExam (eJOI20_exam)C++17
0 / 100
5 ms340 KiB
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin >> n;
    vector<int> a(n + 1);
    vector<int> b(n + 1);
    for (int i = 1; i <= n; ++i)
    {
        cin >> a[i];
    }
    for (int i = 1; i <= n; ++i)
    {
        cin >> b[i];
    }
    vector<int> dp(n + 1);
    for (int i = 1; i <= n; ++i)
    {
        int cnt = 0;
        for (int j = i; j >= 1; --j)
        {
            if (a[j] > a[i])
            {
                break;
            }
            cnt += b[j] == a[i];
            dp[i] = max(dp[i], dp[j - 1] + cnt);
        }
    }
    int ans = 0;
    for (int i = 1; i <= n; ++i)
    {
        int rep = dp[i];
        for (int j = i + 1; j <= n; ++j)
        {
            if (a[j] > a[i])
            {
                break;
            }
            rep += b[j] == a[i];
        }
        ans = max(ans, rep);
    }
    cout << ans;
}
#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...