Pagini recente » Cod sursa (job #1758357) | Cod sursa (job #566817) | Cod sursa (job #1403926) | Cod sursa (job #2641270) | Cod sursa (job #192103)
Cod sursa(job #192103)
#include<stdio.h>
FILE *f=fopen("stramosi.in","r"),
*g=fopen("stramosi.out","w");
int a[250099][30],i,j,n,k,m,p,q,r;
int main()
{ fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;++i) fscanf(f,"%d",&a[i][0]);
r=n;
while(r>0) r>>=1,++k;
for(i=1;i<=k;++i)
for(j=1;j<=n;++j)
{ a[j][i]=a[a[j][i-1]][i-1];
}
for(i=1;i<=m;++i) { fscanf(f,"%d %d",&q,&p);
k=0;r=q;
while(p){ if(p&1) r=a[r][k];
p>>=1;
++k;
}
fprintf(g,"%d\n",r);
}
fclose(f);
fclose(g);
return 0;
}