Pagini recente » Cod sursa (job #2331313) | Cod sursa (job #1669497) | Cod sursa (job #1742983) | Cod sursa (job #249193) | Cod sursa (job #3283287)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
#define cin fin
#define cout fout
int str[20][250002];//i , j la dist i din nodu j
int main(){
int n,q;
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>str[0][i];
}
for(int i=1;i<=19;i++){
for(int j=1;j<=n;j++)
str[i][j]=str[i-1][str[i-1][j]];
}
while(q--){
int p,nod;
cin>>nod>>p;
int i=20;
int ans=nod;
while(i>=0){
if(((1<<i)&p))
ans=str[i][ans];
i--;
}
cout<<ans<<'\n';
}
}