Pagini recente » Cod sursa (job #1401823) | Cod sursa (job #518389) | Cod sursa (job #2957417) | Cod sursa (job #239594) | Cod sursa (job #180298)
Cod sursa(job #180298)
#include <stdio.h>
#define NMAX 250001
int a[NMAX][20], n, m;
int main(){
FILE *g=fopen("stramosi.out", "w");
FILE *f=fopen("stramosi.in", "r");
fscanf(f, "%d %d", &n, &m);
int i, j, p, nr, x;
for(i=1; i<=n; i++)
fscanf(f, "%d", &a[i][0]);
for(i=1; i<=n; i++)
for(j=1; j<=18; j++)
a[i][j] = a[a[i][j-1]][j-1];
for(i=1; i<=m; i++){
fscanf(f, "%d %d", &p, &nr);
x=nr; j=0;
while(x) x>>=1, j++;
j--;
//j=19;
while(nr){
if(nr&(1<<j)){
p=a[p][j];
nr-=(1<<j);
}
j--;
}
fprintf(g, "%d\n", p);
}
return 0;
}