Pagini recente » Cod sursa (job #968689) | Cod sursa (job #279855) | Cod sursa (job #1403121) | Cod sursa (job #1137479) | Cod sursa (job #1932896)
#include <stdio.h>
#define N 250005
#define log 19
int n,m,i,j,p,q,ans;
int anc[log][N];
int main()
{
FILE *f1,*f2;
f1=fopen("stramosi.in","r");
f2=fopen("stramosi.out","w");
fscanf(f1,"%d%d",&n,&m);
for(i=1;i<=n;i++)
fscanf(f1,"%d",&anc[0][i]);
for(j=1;(1<<j)<=n;j++)
for(i=1;i<=n;i++)
anc[j][i]=anc[j-1][anc[j-1][i]];
while(m--)
{
fscanf(f1,"%d%d",&q,&p);
ans=q;
for(i=0;(1<<i)<=n;i++)
if(p&(1<<i))
ans=anc[i][ans];
fprintf(f2,"%d\n",ans);
}
return 0;
}