Cod sursa(job #675953)

Utilizator PatrikStepan Patrik Patrik Data 8 februarie 2012 14:58:17
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
	#include<stdio.h>
	FILE *f , *g ;
	long n , a[21][250001] , m , q , p;
	
	
	int main()
	{
		
		f=fopen("stramosi.in" , "r" );
		g=fopen("stramosi.out" , "w" );
		fscanf(f , "%ld%ld" , &n  , &m );
		for(int i = 1 ; i<= n ; ++i )
			fscanf(f , "%d" , &a[0][i]);
		
		for(int i = 1 ; i <= 20 ; i++ )
			for(long j = 1 ; j<= n ; ++j )
				a[i][j] = a[i-1][a[i-1][j]];
			
			for(long i = 1 ; i<= m ; ++i )
			{
				fscanf(f , "%ld%ld" , &q , &p);
				int y = 0;
				while(p)
				{
					if(p%2)
					{
						q = a[y][q];
					}
					y++;
					p/=2;
				}
				fprintf(g , "%ld\n" , q );
			}				
			
			fclose(f);
			fclose(g);
		return 0;
	}