Pagini recente » Cod sursa (job #2488184) | Cod sursa (job #2167445) | Cod sursa (job #2002792) | Cod sursa (job #1686067) | Cod sursa (job #3003238)
#include <bits/stdc++.h>
using namespace std;
int n, q;
int t[250001][19];
fstream fin("stramosi.in",ios::in),fout("stramosi.out",ios::out);
int main() {
fin >> n >> q;
for (int i = 1; i <= n; i++) {
fin >> t[i][0];
}
for (int h = 1; h <= 18; h++) {
for (int i = 1; i <= n; i++) {
t[i][h] = t[t[i][h - 1]][h - 1];
}
}
while (q--) {
int nod, k;
fin >> nod >> k;
for(int h=18;h>=0;h--)
{
if(k & (1<<h))
{
nod = t[nod][h];
}
}
fout<<nod<<'\n';
}
return 0;
}