Cod sursa(job #197186)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 2 iulie 2008 16:47:48
Problema NextSeq Scor 85
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
# include <stdio.h>
int a[10010],b[10000],x[10000],i,j,n,m,p,aux,ok,l,k;
void aduna (int a[1000])
{
if (a[0]<n-1)
a[0]++;
else
{
i=0;
while (a[i]==n-1)
{
a[i]=0;
i++;
}
if (i<m)
a[i]++;
else
{
a[i]=0;
m++;
}
}
}
int main ()
{
freopen ("nextseq.in","r",stdin);
freopen ("nextseq.out","w",stdout);
scanf ("%i%i%i",&n,&m,&p);
for (i=0;i<n;i++)
scanf ("%i",&x[i]);
for (i=0;i<m;i++)
scanf ("%i",&a[i]);
for (i=0;i<p;i++)
scanf ("%i",&b[i]);
for (i=0;i<n-1;i++)
for (j=i+1;j<n;j++)
if (x[i]>x[j])
{
aux=x[i];
x[i]=x[j];
x[j]=aux;
}
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
if (x[j]==a[i])
{
a[i]=j;
break;
}
}
for (i=0;i<p;i++)
{
for (j=0;j<n;j++)
if (b[i]==x[j])
{
b[i]=j;
break;
}
}
for (i=0;i<m/2;i++)
{
aux=a[i];
a[i]=a[m-i-1];
a[m-i-1]=aux;
}
for (i=0;i<p/2;i++)
{
aux=b[i];
b[i]=b[p-i-1];
b[p-i-1]=aux;
}
k=0;
while (ok==0)
{
k++;
aduna (a);
if (m==p)
{
l=0;
for (i=0;i<m;i++)
if (a[i]!=b[i])
{
l=1;
break;
}
if (l==0)
ok=1;
}
}
printf ("%i",k-1);
return 0;
}