Pagini recente » Cod sursa (job #1141808) | Cod sursa (job #948698) | Cod sursa (job #618628) | Cod sursa (job #2825660) | Cod sursa (job #11260)
Cod sursa(job #11260)
#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn = 10000;
typedef short lnum[10000];
lnum a,b;
lnum sol;
short i;
short j;
short n2;
short n;
lnum s;
short n1;
short x;
short ans;
short nr[maxn];
bool cmpf(lnum &a,lnum b)
{
if (a[0]!=b[0]) return false;
for(i=1;i<=a[0];i++)
if (a[i]!=b[i]) return false;
return true;
}
int main()
{
freopen("nextseq.in","r",stdin);
freopen("nextseq.out","w",stdout);
scanf("%hd %hd %hd",&n,&n1,&n2);
for(i=1;i<=n;i++)
{
scanf("%hd",&a[i]);
}
sort(a+1,a+n+1);
for(i=1;i<=n;i++)
{
nr[a[i]]=i-1;
}
memset(a,0,sizeof(a));
a[0]=n1;
for(i=1;i<=n1;i++)
{
scanf("%hd",&x);
a[n1-i+1]=nr[x];
}
b[0]=n2;
for(i=1;i<=n2;i++)
{
scanf("%hd",&x);
b[n2-i+1]=nr[x];
}
for(i=n1+1;i<=n2;i++)
{
a[i]=-1;
}
s[0]=1;
s[1]=1;
while(cmpf(a,b)==false)
{
i=1;
a[i]++;
while(a[i]>=n)
{
a[i]=0;
a[i+1]+=1;
i++;
}
if (i>a[0]) a[0]=i;
ans++;
}
printf("%hd",ans-1);
printf("\n");
return 0;
}