Pagini recente » Cod sursa (job #1079438) | Cod sursa (job #2867941) | Cod sursa (job #3174364) | Cod sursa (job #2343887) | Cod sursa (job #1522707)
#include<cstdio>
using namespace std;
int dp[20][250010];
int main(){
freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
int n,t,i,j,q,nod,stramos;
scanf("%d%d",&n,&t);
for(i=1;i<=n;i++)
scanf("%d",&dp[i][0]);
for(i=1;i<=18;i++)
for(j=1;j<=n;j++)
dp[j][i]=dp[dp[j][i-1]][i-1];
for(q=1;q<=t;q++){
scanf("%d%d",&nod,&stramos);
j=0;
while(stramos!=0){
if(stramos%2==1)
nod=dp[nod][j];
j++;
stramos/=2;
}
printf("%d\n",nod);
}
return 0;
}