Cod sursa(job #486254)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 20 septembrie 2010 20:30:36
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <stdio.h>

FILE *f,*s;

int m,n,i,j,x,y,z,v[50][250005];

int main()
{
	f=fopen("stramosi.in","r");
	s=fopen("stramosi.out","w");

	fscanf(f,"%d %d",&n,&m);
	
	for (i=1;i<=n;i++)
       fscanf(f,"%d",&v[0][i]);
	
    for (i=1;i<=40;i++)
    {
		for (j=1;j<=n;j++)
			v[i][j]=v[i-1][v[i-1][j]];
    }
	
	for (i=1;i<=m;i++)
    {
        fscanf(f,"%d%d",&x,&y);
		
        z=0;
        while (y!=0)
        {
            if (y%2==1)
                x=v[z][x];
			
            z++;
			
            y/=2;
        }
		
        fprintf(s,"%d\n",x);
    }
	
	fclose(s);
	
	return 0;
}