Pagini recente » Cod sursa (job #1409704) | Cod sursa (job #235321) | Cod sursa (job #2147160) | Cod sursa (job #490496) | Cod sursa (job #66288)
Cod sursa(job #66288)
#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,aux=100;
tmp = 1;
while(aux > 0)
{
aux /= BASE;
tmp *= BASE;
++poz;
}
while(poz > 0)
{
ret += b[poz]*tmp;
--poz;
tmp /= BASE;
}
--ret;
if(ret>=0)
printf("%d\n",ret);
else
printf("0\n");
return 0;
}