Cod sursa(job #1245766)

Utilizator nimicLeoveanu Mihaita Alexandru nimic Data 19 octombrie 2014 22:21:30
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<fstream>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");

/*
d[i][j] = al 2^i-lea stramosi a lui j
*/
const int nmax = 250006;
int n, d[20][nmax], m, p, q;

int main(){
	int player_unu=0;

	in>>n>>m;
	for(int i = 1; i<=n; i++)
		in>>d[0][i];

	for(int i = 1; i<=18; i++)
		for(int j = 1; j<=n; j++)
			d[i][j] = d[i - 1][d[i - 1][j]];

	for(int shp = 0; shp<m; shp++)
	{
		in>>q>>p;

		for(int i = 0; p!=0; p/=2, i++)
			if(p%2==1)
				q = d[i][q];

		out<<q<<'\n';
	}

	return player_unu;
}