Pagini recente » Cod sursa (job #2057221) | Cod sursa (job #2280472) | Cod sursa (job #117650) | Cod sursa (job #1657313) | Cod sursa (job #205114)
Cod sursa(job #205114)
#include<stdio.h>
FILE *fin=fopen("stramosi.in","r"),
*fout=fopen("stramosi.out","w");
int N,M;
int a[25005][1000];
int interogare(int f,int c){
int x=1;
while(c){
if(c%2)
f=a[f][x];
c/=2;
++x;
}
return f;
}
int main(){
fscanf(fin,"%d%d",&N,&M);
for(int i=1;i<=N;i++)
fscanf(fin,"%d",&a[i][1]);
for(int i=2;i<=20;i++)
for(int j=1;j<=N;j++)
a[j][i]=a[a[j][i-1]][i-1];
/* for(int i=1;i<=N;i++){
for(int j=1;j<=20;j++)
fprintf(fout,"%d ",a[i][j]);
fprintf(fout,"\n");
}
*/
for(int i=1;i<=M;i++){
int f,c;
fscanf(fin,"%d%d",&f,&c);
fprintf(fout,"%d\n",interogare(f,c));
}
fclose(fin);
fclose(fout);
return 0;
}