Cod sursa(job #2427813)

Utilizator stefantagaTaga Stefan stefantaga Data 2 iunie 2019 12:53:33
Problema Stramosi Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>

using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int n,q,i,v[250005],nrstr,nr,stramos[18][250000],j,pas,solst,sol;
int main()
{
    f>>n>>q;
    for (i=1;i<=n;i++)
    {
        f>>v[i];
        stramos[0][i]=v[i];
    }
    for (i=1;(1<<i)<=n;i++)
    {
        for (j=1;j<=n;j++)
        {
            stramos[i][j]=stramos[i-1][stramos[i-1][j]];
        }
    }
    for (i=1;i<=q;i++)
    {
        f>>nr>>nrstr;
        pas=18;
        sol=0;
        solst=nr;
        while (pas>=0)
        {
            if (sol+(1<<pas)<=nrstr)
            {
                solst=stramos[pas][solst];
                sol+=(1<<pas);
            }
            pas--;
        }
        g<<solst<<'\n';
    }
    return 0;
}