Cod sursa(job #1574572)

Utilizator krityxAdrian Buzea krityx Data 20 ianuarie 2016 17:57:30
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.55 kb
#include<fstream>
#include<cmath>
#define NMAX 250002
using namespace std;

int a[19][NMAX];
int main()
{
	ifstream f("stramosi.in");
	ofstream g("stramosi.out");
	int n, m, i, j, q, p;
	f >> n >> m;
	for (i = 1; i <= n; i++)
	{
		f >> a[0][i];
	}

	for (i = 1; (1<<i) <= n; i++)
	{
		for (j = 1; j <= n; j++)
		{
			a[i][j] = a[i - 1][a[i - 1][j]];
		}
	}

	
	while (f >> q >> p)
	{
		int nod = q;
		for (int i = 0; p >> i; i++) {
			if ((p >> i) & 1)
				nod = a[i][nod];
		}
		g << nod << "\n";
	}


	f.close();
	g.close();
}