Cod sursa(job #233009)

Utilizator Boicescu_TheodorBoicescu Theodor Boicescu_Theodor Data 16 decembrie 2008 18:38:52
Problema Stramosi Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
include<fstream.h>   
#include<math.h>   
 long int v[18][250001];   
  
int main()   
{   
long int j,p,i,q,m,n,nr=0,x;   
  
  
ifstream f("stramosi.in");   
 ofstream g("stramosi.out");   
f>>n>>m;   
for(i=1; i<=n; ++i)   
    f>>v[0][i];   
  
  
    for(i=1;i<=17;++i)   
        for(j=1;j<=n;++j)   
            v[i][j]=v[i-1][v[i-1][j]];   
  
for(i=1;i<=m;++i)   
    {f>>q>>p;   
     x=pow(2,17);   
    for(j=17;x>p;--j, x/=2);   
    nr=x;   
    q=v[j][q];   
        while(nr<p && q!=0)   
                {for(;x>p-nr;--j, x/=2);   
                 nr+=x;   
                 q=v[j][q];   
                }   
  
     g<<q<<"\n";}   
f.close();            
g.close();            
return 0;            
}