Pagini recente » Cod sursa (job #2355594) | Cod sursa (job #1125161) | Cod sursa (job #844672) | Cod sursa (job #2177040) | Cod sursa (job #1262997)
#include <stdio.h>
#define MAXN 250000
#define MAXLG 17
int t[MAXLG+1][MAXN+1];
int main(){
int n, q, i, x, j, log, p;
FILE *fin, *fout;
fin=fopen("stramosi.in", "r");
fout=fopen("stramosi.out", "w");
fscanf(fin, "%d%d", &n, &q);
for(i=1; i<=n; i++){
fscanf(fin, "%d", &t[0][i]);
}
for(i=1; (1<<i)<=n; i++){
for(j=1; j<=n; j++){
t[i][j]=t[i-1][t[i-1][j]];
}
}
log=i-1;
for(i=0; i<q; i++){
fscanf(fin, "%d%d", &x, &p);
for(j=log; j>=0; j--){
if((p&(1<<j))!=0){
x=t[j][x];
}
}
fprintf(fout, "%d\n", x);
}
fclose(fin);
fclose(fout);
return 0;
}