Pagini recente » Cod sursa (job #1852189) | Cod sursa (job #2320636) | Cod sursa (job #2188448) | Cod sursa (job #857482) | Cod sursa (job #2216148)
#include <bits/stdc++.h>
using namespace std;
ifstream in("stramosi.in");
ofstream out("stramosi.out");
const int NMAX = 250005;
int str[19][NMAX];
int solve(int nod, int stramos) {
if(stramos == 0)
return nod;
int p = 0;
while((1 << p) <= stramos)
p ++;
p --;
return solve(str[p][nod], stramos - (1 << p));
}
int main() {
int n, q;
in >> n >> q;
for (int i = 1; i <= n; i ++)
in >> str[0][i];
for (int i = 1; i <= 17; i ++)
for(int j = 1; j <= n; j ++)
str[i][j] = str[i-1][str[i-1][j]];
for(int test = 1; test <= q; test ++) {
int stramos, nod;
in >> nod >> stramos;
out << solve(nod, stramos) << "\n";
}
return 0;
}