Cod sursa(job #811433)

Utilizator batistaUPB-Oprea-Cosmin-Dumitru batista Data 12 noiembrie 2012 11:08:50
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<fstream>
using namespace std;
int a[19][250001];
int n,m,i,l,x,p,q,nod,ord;

int main()//18=log(2,2500000),se cere stramosul de ordin ord al lui nod
{
   ifstream f("stramosi.in");ofstream g("stramosi.out");
    f>>n>>m;
    for(i=1;i<=n;++i)
        f>>a[0][i];
    for(l=1;l<=18;l++)
     for(i=1;i<=n;i++)
      a[l][i]=a[l-1][ a[l-1][i] ];

    for(i=1;i<=m;++i)
    {
        f>>nod>>ord;
        l=0;
        while(ord>0)
        {
            if(ord%2!=0)
                nod=a[l][nod];
            l++;
            ord/=2;
        }
       g<<nod<<'\n';
    }
    f.close();g.close();
    return 0;
}