Cod sursa(job #2801546)

Utilizator bostanlucastefanBostan Luca-Stefan bostanlucastefan Data 16 noiembrie 2021 15:56:22
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <fstream>

using namespace std;

ifstream fin("stramosi.in");
ofstream fout("stramosi.out");

const int N=25e4+1;
const int LOG=18;

int n,q,p,nod,i;
int v[N],d[N][LOG];

int main()
{
    fin>>n>>q;
    for(i=1; i<=n; i++)
        fin>>v[i];

    for(nod=1; nod<=n; nod++)
    {
        d[nod][0]=v[nod];
        for(i=1; i<LOG; i++)
            d[nod][i]=d[d[nod][i-1]][i-1];
    }

    while(q--)
    {
        fin>>nod>>p;
        for(i=LOG-1; i>=0; i--)
            if(p&(1<<i))
                nod=d[nod][i];
        fout<<nod<<'\n';
    }
    fout<<'\n';
    return 0;
}