Pagini recente » Istoria paginii runda/lista1/clasament | Istoria paginii runda/simulareoji2martie/clasament | Istoria paginii runda/eusebiu_oji_2016_cls11-12 | Istoria paginii runda/horax_round_1 | Cod sursa (job #2816830)
#include <bits/stdc++.h>
using namespace std;
const int N = 250002;
int v[20][N];
int n, m;
int main()
{
freopen("stramosi.in", "r", stdin);
freopen("stramosi.out", "w", stdout);
cin >> n >> m;
for (int i = 1; i<=n; i++)
cin >> v[0][i];
for (int k=0; k<18; k++){
for (int i=1; i<=n; i++)
v[k+1][i] = v[k][v[k][i]];
}
int q, p;
for (int i=0; i<m; i++){
cin >> q >> p;
for (int j=20; j>=0; j--){
if ((p & (1 << j)) != 0)
q = v[j][q];
}
cout << q << "\n";
}
}