Cod sursa(job #1730741)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 17 iulie 2016 16:03:18
Problema NextSeq Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include<cstdio>
#include<algorithm>
#define MAXN 20010
using namespace std;
int x[MAXN],a[MAXN],b[MAXN],temp[MAXN];
int main(){
    freopen("nextseq.in","r",stdin);
    freopen("nextseq.out","w",stdout);
    int n,m,p,i,j,ok=1,found,answer=0;
    scanf("%d%d%d",&n,&m,&p);
    for(i=0;i<n;i++)
        scanf("%d",&x[i]);
    for(i=0;i<m;i++)
        scanf("%d",&a[m-i]);
    for(i=0;i<p;i++)
        scanf("%d",&b[p-i]);
    sort(x,x+n);
    for(i=0;i<n;i++)
        temp[x[i]]=i;
    for(i=1;i<=m;i++)
        a[i]=temp[a[i]];
    for(i=1;i<=p;i++)
        b[i]=temp[b[i]];
    a[0]=m;
    b[0]=p;
    while(ok==1){
        ok=0;
        found=0;
        for(i=1;i<=a[0];i++){
            if(a[i]!=b[i])
                ok=1;
            if(a[i]<n-1&&found==0){
                found=1;
                a[i]++;
                for(j=i-1;j>0;j--)
                    a[j]=0;
            }
        }
        if(found==0){
            a[0]++;
            for(i=1;i<a[0];i++)
                a[i]=0;
        }
        answer++;
        if(a[0]!=b[0])
            ok=1;
    }
    printf("%d",answer-2);
    return 0;
}