Cod sursa(job #1738847)

Utilizator theo.stoicanTheodor Stoican theo.stoican Data 7 august 2016 20:28:13
Problema Stramosi Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

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

#define nmax 100000

int n, m;
int T[17][nmax];
vector<vector<int> > g;

int main ()
{
	fin>>n>>m;
	g.resize(n+1);
	for (int i = 1; i <= n; i++)
	{
		fin >>T[0][i];
		g[T[0][i]].push_back(i);
	}
	for (int i = 1; (1<<i) <= n; i++)
	{
		for (int k = 1; k <= n; k++)
		{
			T[i][k] = T[i-1][T[i-1][k]];
		}
	}
	for (int i = 1; i <= m; i++)
	{
		int res;
		int q,p;
		fin>>q>>p;
		for (int j = 0; p; p>>=1, ++j)
		{
			if (p & 1)
			{
				q = T[j][q];
			}
		}
		fout<<q<<"\n";
	}
}