Pagini recente » Cod sursa (job #2199655) | Cod sursa (job #1550343) | Cod sursa (job #1322003) | Cod sursa (job #58073) | Cod sursa (job #66285)
Cod sursa(job #66285)
#include <cstdio>
#include <algorithm>
using namespace std;
#define Nmax 10100
int a[Nmax],b[Nmax],X[Nmax], norm[Nmax], BASE;
void sub(int A[],int B[])
{
for (int i=1;i<=B[0];++i)
if(A[i] - B[i] <= 0)
A[i] -= B[i] - BASE, --A[i+1];
else
A[i] -= B[i];
}
int main()
{
freopen("nextseq.in","r",stdin);
freopen("nextseq.out","w",stdout);
int n,tmp;
scanf("%d%d%d",&n,&a[0],&b[0]);
BASE = n;
for (int i=0;i<n;++i)
scanf("%d",X+i);
sort(X,X+n);
for (int i=0;i<n;++i)
norm[X[i]] = i+1;
/*//debug
for (int i=0;i<n;++i)
printf("%d ",X[i]);
printf("\n");
//end*/
for (int i=a[0];i>0;--i)
{
scanf("%d",&tmp);
a[i] = norm[tmp];
}
for (int i=b[0];i>0;--i)
{
scanf("%d",&tmp);
b[i] = norm[tmp];
}
/*//debug
for (int i=1;i<=a[0];++i)
printf("%d ", a[i]);
printf("\n");
for (int i=1;i<=b[0];++i)
printf("%d ", b[i]);
printf("\n");
//end*/
sub(b,a);
/*
for (int i=1;i<=b[0];++i)
printf("%d ", b[i]);
printf("\n");
*/
int ret = 0, poz=1;
tmp = 1;
while(tmp <= 32)
{
ret += b[poz]*tmp;
tmp*=BASE;
++poz;
}
--ret;
if(ret>=0)
printf("%d\n",ret);
else
printf("0\n");
return 0;
}