Pagini recente » Cod sursa (job #2327833) | Cod sursa (job #2217809) | Cod sursa (job #3198047) | Cod sursa (job #2784535) | Cod sursa (job #218486)
Cod sursa(job #218486)
#include<stdio.h>
#include<stdlib.h>
#define N 10002
int v[N],a[N],y[N],b[N],A[N],e[N];
int n,m,p,k=0,s=1,w,max=0,r;
int compar(const void *tai,const void *nij)
{
int aa=*(int*)tai,bb=*(int*)nij;
return aa-bb;
}
void citire()
{
int i;
scanf("%d%d%d",&n,&p,&m);
for(i=0;i<n;++i)
scanf("%d",&y[i]);
qsort(y,n,sizeof(y[1]),compar);
for(i=0;i<n;++i)
v[y[i]]=i;
}
int compar(){
if(m>p)
return 1;
else
if(m<p)
return 0;
for(int i=m-1;i>=0;--i)
if(e[i]<b[i])
return 1;
else
if(e[i]>b[i])
return 0;
return 0;
}
void funct(int i){
e[i]=v[a[i]];
e[i-1]++;
if(e[i-1]>n)
funct(i-1);
}
void cond(){
for(int i=0;i<p;++i)
if(e[i]<n)
return ;
p++;
for(int i=0;i<p;++i)
e[i]=1;
s++;
}
int main(){
int i;
freopen("nextseq.in","r",stdin);
freopen("nextseq.out","w",stdout);
citire();
for(i=p-1;i>=0;--i){
scanf("%d",&a[i]);
e[i]=v[a[i]];
}
for(i=m-1;i>=0;--i)
scanf("%d",&b[i]);
e[0]++;
while(compar()){
cond();
if(e[p-1]>=n)
funct(p-1);
else
e[p-1]++;
s++;
}
printf("%d\n",s);
fclose(stdin);
fclose(stdout);
return 0;
}