Cod sursa(job #758746)

Utilizator radu_bucurRadu Bucur radu_bucur Data 16 iunie 2012 12:34:51
Problema Stramosi Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
int a[20][250100];
int querry(int membru, int ordn)
{
	int i;
    i=0;
	while (ordn!=0&&membru!=0){
		if (ordn%2==1)
			membru=a[i][membru];
		ordn=ordn/2;
		i++;
	}

	return membru;
}
int main(){
	int n,m,i,j,x,y,l;
	in>>n>>m;
	x=1; y=0;
	while (x<m)
	{
		x=x*2; 
		y++;
	}
	
	y++;
	
	for (i=1;i<=n;i++)
		in>>a[0][i];
	
	for (i=1;i<=y;i++)
		for (j=1;j<=n;j++)
			a[i][j]=a[i-1][a[i-1][j]];
		
	for (l=1;l<=m;l++)
	{  
		in>>x>>y;
		out<<querry(x,y)<<"\n";
	}
	
	return 0;
}