Pagini recente » Cod sursa (job #3168359) | Cod sursa (job #353736) | Cod sursa (job #958878) | Cod sursa (job #324184) | Cod sursa (job #192108)
Cod sursa(job #192108)
#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;
k=17;
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;
}