Cod sursa(job #1042691)

Utilizator The_DisturbedBungiu Alexandru The_Disturbed Data 27 noiembrie 2013 16:43:32
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
int v[23][250013],m,n,i,j,k,p,q;
int main()
{
	freopen("stramosi.in","r",stdin);
	freopen("stramosi.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;++i)scanf("%d",&v[0][i]);
	k=1;
	while(1<<k < n)
	{
		for(i=1;i<=n;++i)
			v[k][i]=v[k-1][v[k-1][i]];
		++k;
	}
/*	for(i=0;i<=5;++i)
	{
		for(j=1;j<=n;++j)printf("%d ",v[i][j]);
		printf("\n");
	}*/
	for(k=0;k<m;++k)
	{
		scanf("%d%d",&q,&p);
		for(j=0;(1<<j)<=p;++j)
			if( p & (1<<j) )
				q=v[j][q];
		printf("%d\n",q);
	}
	return 0;
}