Pagini recente » Cod sursa (job #647052) | Cod sursa (job #1216472) | Cod sursa (job #628610) | Cod sursa (job #2184881) | Cod sursa (job #1522711)
#include<cstdio>
using namespace std;
int dp[19][250001];
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;
}