Pagini recente » Rating Ganea Carina (Cryshana) | Cod sursa (job #1933356) | Cod sursa (job #882630) | Cod sursa (job #629634) | Cod sursa (job #1434237)
#include <fstream>
#include <iostream>
#define DN 250005
using namespace std;
int anc[30][DN];
int find_anc(int x, int p){
for(int i = 20; i > -1; --i){
if(p & (1 << i)){
x = anc[i][x];
}
}
return x;
}
int main() {
int n, m, x, p;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
fin >> n >> m;
for(int i = 1; i <= n; ++i){
fin >> anc[0][i];
}
for(int j = 1; j < 20; ++j)
for(int i = 1; i <= n; ++i){
anc[j][i] = anc[j-1][anc[j-1][i]];
}
for(int i = 0; i < m; ++i){
fin >> x >> p;
fout << find_anc(x, p) << '\n';
}
return 0;
}