Cod sursa(job #639696)

Utilizator joli94Apostol Adrian Alexandru joli94 Data 23 noiembrie 2011 19:51:05
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
#include<fstream>

using namespace std;

int n , m , p , q , a[18][250001];

ifstream fin("stramosi.in");
ofstream fout ("stramosi.out");

int stramos(int x , int lung)
{
	int i = 0;
	
	while ( lung != 0 )
	{
		if ( lung % 2 != 0 ) x = a[i][x];
		lung /= 2;
		++i;
	}
	return x;
}

int main()
{	
	fin>>n>>m;
	
	for (int j=1 ; j<=n ; ++j )
		fin>>a[0][j];
	
	for (int i=1 ; (1<<i) <= n ; ++i )
	{
		for ( int j = 1 ; j <= n ; ++j )
			a[i][j] = a[i-1][a[i-1][j]];
	}

	for (int i = 1 ; i <= m ; ++ i )
	{
		fin>>q>>p;
		fout<<stramos(q,p)<<'\n';
	}		
	
	fin.close();
	fout.close();
	
	return 0;
}