Cod sursa(job #113524)

Utilizator SharpeBigadrian ursulescu SharpeBig Data 10 decembrie 2007 18:11:55
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <cstdio>
using namespace std;
   int stra[18][250006],i,j,n,m,a,b,continua;
int main()
{  FILE *fin=fopen("stramosi.in","r"),*fout=fopen("stramosi.out","w");
   fscanf(fin,"%d %d",&n,&m);for(i=1;i<=n;fscanf(fin,"%d",&stra[0][i++]));

   for(j=1;1<<j <=n;j++/*,cout<<endl*/)for(i=1,continua=0;i<=n;i++)
   {  stra[j][i]=stra[j-1][stra[j-1][i]];
//      cout<<stra[j][i]<<" ";
      if(stra[j][i]>0) continua=1;
      if(i==n&& !continua) j=20;
   }

   for(;m>0;m--)
   {  fscanf(fin,"%d %d",&b,&a);
      for(i=0;1<<i <=a;i++)if((a>>i)&1) b=stra[i][b];
      fprintf(fout,"%d\n",b);
   } 
   fclose(fin);fclose(fout); 
   return 0;   
}