Cod sursa(job #260750)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 17 februarie 2009 15:20:39
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.71 kb
#include <stdio.h>
#define N 250002
int i,j,str[18][N],n,m,q,p;
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",&str[0][i]);
	for(j=1;j<18;j++)
	{
		for(i=1;i<=n;i++)
			if (str[j-1][i]!=0)
				str[j][i]=str[j-1][str[j-1][i]];
	}
     for(i=1;i<=m;i++)
     {
		                       scanf("%d%d",&q,&p);
                        	   for(j=0;p;j++,p/=2)
	                           {
		                                          if (p&1)
			                                         q=str[j][q];
                               }
	                           printf("%d\n",q);
	 }
     return 0;	
}