Pagini recente » Cod sursa (job #2820260) | Cod sursa (job #2886342) | Cod sursa (job #3210619) | Cod sursa (job #685368) | Cod sursa (job #197191)
Cod sursa(job #197191)
# include <stdio.h>
int a[10010],b[10010],x[10010],i,j,n,m,p,aux,ok,l,k,z;
void aduna (int a[10001])
{
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 cauta (int y,int a[10001],int n)
{int q=0;
j=n/2;
z=j/2;
while (q==0)
{
if (y==a[j])
return j;
else
if (y>a[j])
j=j+z;
else
j=j-z;
z=z/2;
if (z==0)
z=1;
}
}
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++)
a[i]=cauta (a[i],x,n);
for (i=0;i<p;i++)
b[i]=cauta (b[i],x,n);
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;
}