Cod sursa(job #850876)

Utilizator OpportunityVlad Negura Opportunity Data 9 ianuarie 2013 01:16:54
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.46 kb
#include <fstream>
#include <iostream>
using namespace std;

ifstream fi("stramosi.in");
ofstream fo("stramosi.out");

int j,i,n,m,a[20][250010],x,y;

int main(){
	fi >> n >> m;
	
	for (i=1; i<=n; i++) fi >> a[0][i];
	for (i=1; i<=17; i++) 
		for (j=1; j<=n; j++)
			a[i][j]=a[i-1][a[i-1][j]];

	while (m) {
		fi >> x >> y;
		for (i=0; y>0; i++)
			if ((y & 1<<i)>0){
				x=a[i][x];
				y-=1<<i;
			}
		fo << x << "\n";
		m--;
	}
	
	return 0;
}