Cod sursa(job #2415161)

Utilizator mjmilan11Mujdar Milan mjmilan11 Data 25 aprilie 2019 16:26:37
Problema NextSeq Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("nextseq.in");
ofstream fout("nextseq.out");

const int NMAX = 10005;
int v[NMAX],a[NMAX],b[NMAX],ord[NMAX];
int n,m,p;

void modify(int a[])
{
    a[1]++;
    if(a[1]!=(n+1)) return;
    a[1]=1;
    int ind=2;
    a[ind]++;
    while(a[ind]==(n+1))
    {
        a[ind]=1;
        ind++;
        if(ind>a[0]) a[0]++;
        a[ind]++;
    }
}

bool egale(int a[],int b[])
{
    if(a[0]!=b[0]) return false;
    for(int i=1;i<=a[0];i++)
        if(a[i]!=b[i]) return false;
    return true;
}

int main()
{
    fin >> n >> m >> p;
    int x;
    for(int i=1;i<=n;i++)
        fin >> v[i];
    sort(v+1,v+n+1);
    for(int i=1;i<=n;i++)
        ord[v[i]]=i;
    a[0]=m;
    b[0]=p;
    for(int i=1;i<=m;i++)
    {
        fin >> x;
        a[m-i+1]=ord[x];
    }
    for(int j=1;j<=p;j++)
    {
        fin >> x;
        b[p-j+1]=ord[x];
    }
    int rasp=0;
    while(egale(a,b)==false)
    {
        modify(a);
        rasp++;
    }
    fout << rasp-1;
    return 0;
}