Cod sursa(job #2729836)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 25 martie 2021 14:35:51
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.51 kb
#include <bits/stdc++.h>
 
using namespace std;
 
ifstream f("stramosi.in");
ofstream g("stramosi.out");

int up[250001][18];
int N, M;

int main(){
	f >> N >> M;
	for(int i = 1;i <= N;i++)
		f >> up[i][0];

	for(int i = 1;i <= N;i++)
		for(int k = 1;(1 << k) <= N;k++)
			up[i][k] = up[up[i][k - 1]][k - 1];

	for(int i = 1;i <= M;i++){
		int lvl, nod;
		f >> nod >> lvl;
		int ans = 0;
		while(lvl){
			if(lvl & 1) nod = up[nod][ans];
			ans++;
			lvl >>= 1;
		}
		g << nod << "\n";
	}


}