Cod sursa(job #3241124)

Utilizator luc3lexaAlexandrescu Luca luc3lexa Data 26 august 2024 18:39:34
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

const int nmax = 25e4+10;
const int LOG = 20;

vector<vector<int>> up(LOG+1,vector<int> (nmax,0));
int n,m;

void read_input(){
	fin >> n >> m;
	for(int i = 1; i <=n; i++){
		fin >> up[0][i];
	};
	
	for(int i = 1; i <=LOG; i++){
		for(int j = 1; j <=n; j++){
			up[i][j] = up[i-1][up[i-1][j]];
		}
	}
};

int solve_query(int nod,int k){
	
	for(int i = 0; i <=LOG; i++){
		if(k & (1 << i)){
			nod = up[i][nod];
		}
	};
	return nod;
}

int main(){
	read_input();
	int q,p;
	for(int i = 1; i <=m; i++){
		fin >> q >> p;
		fout << solve_query(q,p) << '\n';
	};
	return 0;
}