Pagini recente » Cod sursa (job #441075) | Cod sursa (job #2648711) | Cod sursa (job #1384712) | Cod sursa (job #1236335) | Cod sursa (job #3304918)
#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define pb push_back
const int N = 250005;
int n, k, m, up[N][21];
vector<int> g[N];
signed main() {
cin.tie(nullptr)->sync_with_stdio(false);
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
int giani;
cin >> up[i][0];
giani = up[i][0];
}
for (int j = 1; j <= 20; j++) {
for (int i = 1; i <= n; i++) {
up[i][j] = up[up[i][j - 1]][j - 1];
}
}
while (m--) {
int q, p;
cin >> q >> p;
for (int i = 20; i >= 0; i--) {
if (p & (1ll << i)) {
q = up[q][i];
}
}
cout << q << '\n';
}
}