Pagini recente » Cod sursa (job #76764) | Cod sursa (job #148618) | Cod sursa (job #828845) | Cod sursa (job #106983) | Cod sursa (job #165380)
Cod sursa(job #165380)
#include<stdio.h>
int a[103],b[103],c[103],nr[103],n,m,p,i,r,j,q;
void qsort(int l,int r)
{int i,j,x,y;
i=l;j=r;x=a[(l+r)/2];
do
{
while (x>a[i]) i++;
while (x<a[j]) j--;
if (i<=j)
{
y=a[i];a[i]=a[j];a[j]=y;
nr[a[i]]=i-1;nr[a[j]]=j-1;
i++;j--;
}
}
while (i<=j);
if (i<r) qsort(i,r);
if (j>l) qsort(l,j);
}
int verif()
{
if (b[0]<c[0]) return 0;
else
if (b[0]>c[0]) return 1;
else
{
i=1;
while (b[i]==c[i]) i++;
if (b[i]>=c[i]) return 1;
else return 0;
}
}
int main()
{
freopen("nextseq.in","r",stdin);
freopen("nextseq.out","w",stdout);
scanf("%d %d %d",&n,&m,&p);
for (i=1;i<=n;i++)
{
scanf("%d",&a[i]);
nr[a[i]]=i-1;
}
qsort(1,n);
for (i=1;i<=m;i++)
{
scanf("%d",&r);
b[i]=nr[r];
}
for (i=1;i<=p;i++)
{
scanf("%d",&r);
c[i]=nr[r];
}
b[0]=m;
c[0]=p;
for(j=1;;j++)
{
for (i=b[0];b[i]==n-1;i--);
if (i!=0)
{
b[i]++;for (q=i+1;q<=b[0];q++) b[q]=0;
}
else
{
b[0]++;
b[1]=0;
for (q=2;q<=b[0];q++) b[q]=0;
}
if (verif())
break;
}
printf("%d",j-1);
return 0;
}