Pagini recente » Cod sursa (job #1662329) | Cod sursa (job #2553088) | Cod sursa (job #261228) | Cod sursa (job #1633127) | Cod sursa (job #214121)
Cod sursa(job #214121)
#include<stdio.h>
#define N 10005
int a[N],b[N],v[N],q[N],n,m,p;
void funct(int r){
a[r]=v[1];
if(!q[a[r+1]]){
a[r+1]=v[1];
m++;
}
else
if(q[a[r+1]+1]>n)
funct(r+1);
else
a[r+1]=v[q[a[r+1]]-1];
}
int cond(){
int i;
if(p>m)
return 1;
if(p<m)
return 0;
for(i=m;i>=1;--i){
if(a[i]>b[i])
return 0;
if(a[i]<b[i])
return 1;
}
return 1;
}
void sort(){
int i,j,min,x;
for(i=1;i<n;++i){
min=i;
for(j=i+1;j<=n;++j)
if(v[j]<v[min])
min=j;
if(min!=i){
x=v[min];
v[min]=v[i];
v[i]=x;
}
}
}
int main(){
int i,r;
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",&v[i]);
for(i=m;i>=1;--i)
scanf("%d",&a[i]);
for(i=p;i>=1;--i)
scanf("%d",&b[i]);
sort();
for(i=1;i<=n;++i)
q[v[i]]=n-i+1;
q[v[n]+1]=n+1;
r=0;
i=q[a[1]];
while(cond()){
a[1]=v[++i];
r++;
if(i>n){
i=1;
funct(1);
}
}
printf("%d\n",r);
fclose(stdin);
fclose(stdout);
return 0;
}