Pagini recente » Cod sursa (job #189003) | Cod sursa (job #3298476) | Cod sursa (job #1819392) | Cod sursa (job #2347486) | Cod sursa (job #2521633)
#include <stdio.h>
#define MAX 250000
int t[MAX+1][18];
int main(){
FILE *fin=fopen("stramosi.in","r");
FILE *fout=fopen("stramosi.out","w");
int n,m,i,j,p,q,s,p2;
fscanf(fin,"%d%d",&n,&m);
for(i=1; i<=n; i++)
fscanf(fin,"%d",&t[i][0]);
for(j=1; j<18; j++)
for(i=1; i<=n; i++)
t[i][j]=t[t[i][j-1]][j-1];
for(i=0; i<m; i++){
fscanf(fin,"%d%d",&q,&p);
s=q;
p2=0;
while(p){
if(p%2)
s=t[s][p2];
p/=2;
p2++;
}
fprintf(fout,"%d\n",s);
}
fclose(fin);
fclose(fout);
return 0;
}