Cod sursa(job #292653)

Utilizator crawlerPuni Andrei Paul crawler Data 31 martie 2009 12:53:34
Problema NextSeq Scor 100
Compilator cpp Status done
Runda qwerty-6 Marime 0.97 kb
#include <cstdio>
#include <string>
#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;
	
	
	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];
	}

	sub(b,a);
	a[0] = a[1] = 1;
	sub(b,a);

	int ret = 0, poz=1;

	tmp = 1;

	while(tmp <= 39)
	{
		if(ret + b[poz]*tmp <= 100)
			ret += b[poz]*tmp;
		tmp*=BASE;
		++poz;
	}	

	printf("%d\n",ret);

	return 0;
}