Pagini recente » Cod sursa (job #2903797) | Monitorul de evaluare | Cod sursa (job #2003512) | Cod sursa (job #3036498) | Cod sursa (job #3173607)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int up[250002][19];
int main()
{
int n,q,i,j,t,h;
fin >> n >> q;
for(i = 1; i <= n; i++) fin >> up[i][0];
for(i = 1; i <= n; i++){
for(j = 1; (1 << j) <= n; j++) up[i][j] = up[up[i][j - 1]][j - 1];
}
for(i = 1; i <= q; i++){
fin >> t >> h;
for(int e = 0; (1 << e) <= h; e++){
if((1 << e) & h) t = up[t][e];
}
fout << t << "\n";
}
return 0;
}