Cod sursa(job #157492)

Utilizator marcelcodreaCodrea Marcel marcelcodrea Data 13 martie 2008 01:51:56
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include<stdio.h>
#include<math.h>
int a[19][250001];
int n,m,lg,i,j,x,y;
int query(int op1,int op2)
{
 int x=1,l=0;
 if (op2==0) return op1;
 while(2*x<=op2) {x*=2;l++;}
 query(a[l][op1],op2-x);
}
int main()
{
   freopen("stramosi.in","r",stdin);
   freopen("stramosi.out","w",stdout);
   scanf("%ld %ld",&n,&m);
   for(i=1;i<=n;i++)
    scanf("%ld",&a[0][i]);
   lg=log(n)/log(2);
   for(i=1;i<=lg;i++)
    for(j=1;j<=n;j++)
      a[i][j]=a[i-1][a[i-1][j]];
  for(i=1;i<=m;i++)
  {
   scanf("%ld %ld",&x,&y);
   printf("%ld\n",query(x,y));
  }
   return 0;
}