Cod sursa(job #1076636)

Utilizator BuseSorinFMI Buse Sorin-Marian BuseSorin Data 10 ianuarie 2014 14:14:12
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 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;
}