Cod sursa(job #1076637)

Utilizator BuseSorinFMI Buse Sorin-Marian BuseSorin Data 10 ianuarie 2014 14:16:06
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include<iostream>
using namespace std;

#define MAXN 250001
#define MAXLOGN 18

int a[MAXLOGN][MAXN];

int main(){

	ifstream f("stramosi.in");
	ofstream o("stramosi.out");

	int n, m;
	f >> n >> m;
	int p, q;

	for (int i = 1; i <= n; i++){
		f >> a[0][i];
	}

	for (int i = 1; i<MAXLOGN; i++)
	for (int j = 1; j <= n; j++)
		a[i][j] = a[i - 1][a[i - 1][j]];

	for (int i = 0; i<m; i++){
		f >> q >> p;

		for (int k = 17; k >= 0 && q>0; k--)
		if (p & (1 << k))
			q = a[k][q];

		o << q << '\n';
	}
	return 0;
}