Cod sursa(job #268830)

Utilizator warangeldinu sorin warangel Data 1 martie 2009 21:25:25
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
unsigned long v[250010],mat[250010][71];
int main()
{
	FILE *fi,*fo;
   fi=fopen("stramosi.in","r");
   fo=fopen("stramosi.out","w");
   unsigned long n,m,i,p,q,aux,j;
   fscanf(fi,"%lu",&n);
   fscanf(fi,"%lu",&m);
   for(i=1;i<=n;i++)fscanf(fi,"%lu",&v[i]);
   for(i=1;i<=n;i++)
   {
      aux=i;
      for(j=1;j<=70;j++)
      	{
         	aux=v[aux];
            if(!aux)break;
            mat[i][j]=aux;
         }
   }
   for(;m--;)
   {
      fscanf(fi,"%lu %lu",&q,&p);
      for(i=1;i<=p/70&&q;i++)q=mat[q][70];
      if(q)if(p%70)q=mat[q][p%70];
      fprintf(fo,"%lu\n",q);
   }
	return 0;
}