Cod sursa(job #116216)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 17 decembrie 2007 22:58:43
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <string.h>
#include <stdio.h>
#define N 300005
int main ()
{FILE *f,*ff;
 f=fopen("stramosi.in","r");
 ff=fopen("stramosi.out","w");
 long a[18][N],n,m,i,x,y,j,p,q;
 memset(a,0,sizeof(a));
 fscanf(f,"%ld%ld",&n,&m);

 for (i=1;i<=n;i++)
 {fscanf(f,"%ld",&a[0][i]);
 }
 for (j=1;j<=17;j++)
 {for (i=1;i<=n;i++)
  {a[j][i]=a[j-1][a[j-1][i]];}
 }
 for (i=1;i<=m;i++)
 {fscanf(f,"%ld%ld",&p,&q);//q e ord
		i=i;
  while(q)
  {x=q;y=0;while(x>1){x/=2;y++;}
   p=a[y][p];
   q-=1<<y;
  }
  fprintf(ff,"%ld\n",p);
 }
 fclose(f);
 fclose(ff);
return 0;
}