Cod sursa(job #1318552)

Utilizator sicsicFMI-Coteanu Vlad sicsic Data 16 ianuarie 2015 08:29:02
Problema NextSeq Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f("nextseq.in");
ofstream g("nextseq.out");
int n,m,p,a[10001],b[10001],i,j,c[10001],poz[10001],x,nr,ok,ok1;
int compara()
{
    int i,j;
    if(m<p) return 0;
    i=1;
    while(i<=m)
    {
        if(a[i]!=b[i])return 0;
        i++;
    }
    return 1;
}
int main()
{
    f>>n>>m>>p;
    for(i=1;i<=n;++i)
     f>>c[i];
    sort(c+1,c+n+1);
    for(i=1;i<=n;++i) poz[c[i]]=i;
    for(i=1;i<=m;++i)
    {
        f>>x;
        a[i]=poz[x];
    }
    for(i=1;i<=p;++i)
    {
        f>>x;
        b[i]=poz[x];
    }
    nr=0; ok=1;
    while(ok)
    {
        i=m;
        ok1=1;
        while(ok1&&i>0)
        {
            if(a[i]<n)
            {
                a[i]++;
                for(j=i+1;j<=m;++j) a[j]=1;
                ok1=0;
                nr++;
            }
            i--;
        }
        if(ok1)
        {
            for(i=1;i<=m+1;++i) a[i]=1;
            m++;
            nr++;
        }
        if(compara()) ok=0;
    }
    g<<nr-1<<'\n';
    return 0;
}