Pagini recente » Cod sursa (job #791083) | Cod sursa (job #991303) | Cod sursa (job #997988) | Rezultatele filtrării | Cod sursa (job #3301694)
#include <bits/stdc++.h>
using namespace std;
int bl[250005][20];
int main(){
ifstream cin("stramosi.in");
ofstream cout("stramosi.out");
int n, m;
cin >> n >> m;
for(int i = 1; i <= n; i++){
cin >> bl[i][0];
}
for(int b = 1; b < 20; b++){
for(int i = 1; i <= n; i++){
bl[i][b] = bl[bl[i][b - 1]][b - 1];
}
}
while(m--){
int a, b;
cin >> a >> b;
for(int bit = 0; bit < 20; bit++){
if(b & (1 << bit))
a = bl[a][bit];
}
cout << a << '\n';
}
return 0;
}