Cod sursa(job #3301713)

Utilizator Octa-pe-infoNechifor Octavian Octa-pe-info Data 29 iunie 2025 12:33:54
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <vector>
using namespace std;

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

int rmq[250001][18];

void build(int n){

    for(int i=1;i<=17;i++){

        for(int j=1;j<=n;j++){

            rmq[j][i] = rmq[rmq[j][i-1]][i-1];
        }
    }
}

void qeu(int nod,int p){

    for(int i=17;i>=0;i--){

        if((p & (1 << i)))
            nod = rmq[nod][i];
    }

    fout<<nod<<'\n';
}

int main()
{

    int n,m;

    fin>>n>>m;

    for(int i=1;i<=n;i++){

        int tata;
        fin>>tata;

        rmq[i][0] = tata;
    }

    rmq[0][0] = 0;

    build(n);

    while(m--){

        int q,p;
        fin>>q>>p;

        qeu(q,p);
    }

    return 0;
}