Cod sursa(job #1712252)

Utilizator bleo16783FMI Bleotiu Cristian bleo16783 Data 2 iunie 2016 15:24:30
Problema Stramosi Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <iostream>
#include<fstream>
using namespace std;
int D[18][250001],i,j,k,l,n,m,q,p,a;
int log2(int a10)
{
    int j10=0;
    while((1<<j10)<a10)++j10;
    if((1<<j10)>a10)--j10;
    return j10;
}
int main()
{
    ifstream f("stramosi.in");
    f>>n>>m;++n;for(i=1;i<n;++i)f>>D[0][i];
    k=log2(n)+1;
    for(j=1;j<k;++j)
    {
        for(i=1;i<n;++i)
        {
            D[j][i]=D[j-1][D[j-1][i]];
        }
    }
    --n;
    ofstream g("stramosi.out");
    for(l=0;l<m;++l)
    {
        f>>q>>p;
        while(p>0)
        {
            a=log2(p);
            p-=(1<<a);
            q=D[a][q];

        }
        g<<q<<'\n';
    }
    f.close();
    g.close();
    return 0;
}