이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int NMAX = 1e5;
int n;
int a[NMAX + 5], b[NMAX + 5];
int vec[NMAX + 5];
int maxim[15][15];
int val[15];
int ans = 0;
void bkt (int k)
{
    if (k > n)
    {
        for (int i=1; i<=n; i++)
            val[i] = a[i];
        int curr = 0;
        for (int i=1; i<=n; i++)
        {
            for (int j=i; j<=vec[i]; j++)
                val[j] = max(val[j], maxim[i][vec[i]]);
            curr += (val[i] == b[i]);
        }
        ans = max(ans, curr);
    }
    for (int i=k; i<=n; i++)
    {
        vec[k] = i;
        bkt(k+1);
    }
}
int main()
{
    cin >> n;
    for (int i=1; i<=n; i++)
        cin >> a[i];
    for (int i=1; i<=n; i++)
        cin >> b[i];
    bkt(1);
    if (n <= 10)
    {
        for (int i=1; i<=n; i++)
        {
            maxim[i][i] = a[i];
            for (int j=i+1; j<=n; j++)
                maxim[i][j] = max(maxim[i][j-1], a[j]);
        }
        bkt(1);
        cout << ans;
        return 0;
    }
    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... |