Pagini recente » Cod sursa (job #3161064) | Cod sursa (job #2723215) | Rezultatele filtrării | Rating Adia R. (adiaioana) | Cod sursa (job #3301623)
#include <bits/stdc++.h>
using namespace std;
int dp[20][250005];
int main()
{
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; ++i) {
cin >> dp[0][i];
}
for (int p = 1; p < 20; ++p) {
for (int i = 1; i <= n; ++i) {
dp[p][i] = dp[p - 1][dp[p - 1][i]];
}
}
for (int i = 1; i <= m; ++i) {
int node, k;
cin >> node >> k;
for (int bit = 0; bit < 20; ++bit) {
if (((1 << bit) & k) > 0) {
node = dp[bit][node];
}
}
cout << node << '\n';
}
return 0;
}