Cod sursa(job #607243)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 11 august 2011 12:48:16
Problema Stramosi Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.53 kb
#include<stdio.h>
#define N 250001
long n,m,i,x,y,v[N],p[19][N],j,k;
int main()
{freopen("stramosi.in","r",stdin);
freopen("stramosi.out","w",stdout);
scanf("%ld%ld",&n,&m);
for(k=1;(1<<k)<=n;k++);
for(i=1;i<=n;i++)
       scanf("%ld",&v[i]);
p[0][0]=v[0]=0;
for(i=1;i<=n;i++)
       p[0][i]=v[i];
for(i=1;i<=k;i++)
for(j=1;j<=n;j++)
       p[i][j]=v[p[i-1][j]];
while(m--)
       {scanf("%ld%ld",&x,&y);
       if(y-1<=k)
                 printf("%ld\n",p[y-1][x]);
       else
                 printf("0\n");}
return 0;}