Cod sursa(job #2900702)

Utilizator AlexePaulAlexe Paul AlexePaul Data 11 mai 2022 22:57:40
Problema Stramosi Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
	
using namespace std;
	
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
	
const int maxN = 300000;
const int maxL = 30;
	
int m[maxN+5][maxL+5];
int N,M,x,y;
	
int main(){	
	ios::sync_with_stdio(false);
	fin >> N >> M;
	for(int i = 1; i <= N; ++i){
		fin >> m[i][0];
	}
	
	for(int j = 1; j < maxL; ++j){
		for(int i = 1; i <= N; ++i){
			m[i][j] = m[m[i][j-1]][j-1];
		}
	}

	for(int i = 0; i < M; ++i){	
		fin >> x >> y;
		int sol = x;
		int c = 0;
		while(y != 0){
			if(y%2 == 1){
				sol = m[sol][c];
			}
			c++;
			y>>=1;
		}
		fout << sol << '\n';
	}
	return 0;
}