Cod sursa(job #3305362)

Utilizator PescarusTanislav Luca Andrei Pescarus Data 1 august 2025 02:28:19
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
const int nmax = 250005;
int a[nmax], n, m, rmq[18][nmax], e[nmax];
int main(){
    f >> n >> m;
    for(int i = 1; i <= n; i++){
        f >> a[i];
        rmq[0][i] = a[i];
    }
    for(int p = 1; p <= 18; p++){
        for(int i = 1; i <= n; i++){
            rmq[p][i] = rmq[p - 1][rmq[p - 1][i]];
        }
    }
    e[1] = 0;
    for(int i = 2; i <= n; i++){
        e[i] = 1 + e[i / 2];
    }
    while(m--){
        int node, p;
        f >> node >> p;
        while(p > 0){
            node = rmq[e[p]][node];
            p -= (1 << e[p]);
        }
        g << node << '\n';
    }
}