Pagini recente » Cod sursa (job #150646) | Cod sursa (job #555465) | Cod sursa (job #1423113) | Cod sursa (job #2501612) | Cod sursa (job #114838)
Cod sursa(job #114838)
#include <string.h>
#include <stdio.h>
#define N 300000
int main ()
{FILE *fin,*fout;
fin=fopen("stramosi.in","r");
fout=fopen("stramosi.out","w");
long n,m,i,j,x,y,s,c,d,e;
long q[20][N];
memset(q,0,sizeof(q));
fscanf(fin,"%ld %ld",&n,&m);
for (i=1;i<=n;i++)
{fscanf(fin,"%ld",&q[1][i]);}
for (i=2;i<=18;i++)
{for (j=1;j<=n;j++)
{q[i][j]=q[i-1][q[i-1][j]];
}
}
for (i=1;i<=m;i++)
{fscanf(fin,"%ld %ld",&x,&y);
while(y)
{for(c=y,d=1;c>1;c/=2,d*=2){}
y-=d;
x=q[d][x];
}
fprintf(fout,"%ld\n",x);
}
fclose(fin);
fclose(fout);
return 0;
}