Pagini recente » Cod sursa (job #140676) | Cod sursa (job #949016) | Cod sursa (job #122516) | Cod sursa (job #2480783) | Cod sursa (job #150299)
Cod sursa(job #150299)
#include <stdio.h>
#include <fstream.h>
#define NMAX 250001
int a[19][NMAX];
int main()
{ int p,q,aux,nr;
int n,m;
int i,j;
FILE *f=fopen("stramosi.in","rt");
FILE *g=fopen("stramosi.out","wt");
fscanf(f,"%d %d",&n,&m);
for (i=1;i<=n;i++) fscanf(f,"%d",&a[0][i]);
for (i=1;i<=18;i++)for (j=1;j<=n;j++) a[i][j]=a[i-1][a[i-1][j]];
for (i=1;i<=m;i++)
{ fscanf(f,"%d %d",&q,&p);
nr=0;
aux=p;
while (aux)
{ nr++;aux=aux>>1;}
for (j=1;j<=nr;j++)
{ if ((p>>(j-1))&1) q=a[j-1][q];
if (q==0) break;
}
fprintf(g,"%d\n",q);
}
fclose(f);
fclose(g);
return 0;
}