Cod sursa(job #3296610)

Utilizator DalvDalvGhita Vladut DalvDalv Data 14 mai 2025 15:44:48
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>

using namespace std;

int stramos[250001][20];

int main() {
	ifstream cin("stramosi.in");
	ofstream cout("stramosi.out");

	//Stramosi
	int n, m; cin >> n >> m;
	int log2n = log2(n) + 1;

	for(int i = 1; i <= n; i++) {
		cin >> stramos[i][0];
	}

	for(int j = 1; j < log2n; j++) {
		for(int i = 1; i <= n; i++) {
			stramos[i][j] = stramos[stramos[i][j - 1]][j - 1];
		}
	}

	for(int i = 0; i < m; i++) {
		int x, p; cin >> x >> p;

		for(int pi = 0; p >= (1 << pi); pi++) {
			if((p & (1 << pi)) == 0) continue;
			x = stramos[x][pi];
		}

		cout << x << "\n";
	}

	return 0;
}