Cod sursa(job #3259339)

Utilizator Mihai_OctMihai Octavian Mihai_Oct Data 25 noiembrie 2024 21:19:08
Problema NextSeq Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("nextseq.in");
ofstream fout("nextseq.out");
int n, m1, m2, x[10002], i, r;
int a[10002], b[10002], fr[10002];

static inline void Normalizeaza() {
    sort(x + 1, x + n + 1);
    for(i = 1; i <= n; i++) fr[x[i]] = i;
}

int main() {
    fin >> n >> m1 >> m2;
    for(i = 1; i <= n ; i++) fin >> x[i];
    Normalizeaza();

    for(i = 1; i <= m1; i++) {
        fin >> a[i];
        a[i] = fr[a[i]];
    }
    for(i = 1; i <= m2; i++) {
        fin >> b[i];
        b[i] = fr[b[i]];
    }

    reverse(a + 1, a + m1 + 1);
    reverse(b + 1, b + m2 + 1);

    while(true) {
        if(m1 > m2) goto finish;
        else if(m1 == m2) {
            for(i = m1; i >= 1; i--) {
                if(a[i] > b[i]) goto finish;
		if(a[i] < b[i]) break;
            }
        }

        i = 1;
        while(a[i] == n && i <= m1) a[i++] = 1;
        a[i]++;

        r++;
        m1 = max(m1, i);
    }
    finish:;

    fout << r + 1;

    return 0;
}