Cod sursa(job #3265352)

Utilizator CosminaneBoac Mihai Cosmin Cosminane Data 29 decembrie 2024 17:40:28
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.52 kb
#include <fstream>
using namespace std;
int dp[250005][20];
int main(){
	int n, q, i, j, x, y;
	ifstream fin( "stramosi.in" );
	ofstream fout( "stramosi.out" );
	fin >> n >> q;
	for( i = 1; i <= n; i++ ){
		fin >> dp[i][0];
	}
	for( i = 0; i <= n; i++ ){
		for( j = 1; j < 20; j++ ){
			dp[i][j] = dp[dp[i][j - 1]][j - 1];
		}
	}
	for( i = 0; i < q; i++ ){
		fin >> x >> y;
		j = 0;
		while( y > 0 ){
			if( y % 2 == 1 ){
				x = dp[x][j];
			}
			y /= 2;
			j++;
		}
		fout << x << '\n';
	}
	return 0;
}