Cod sursa(job #3003240)

Utilizator MateiStoianStoian Matei Octavian MateiStoian Data 15 martie 2023 16:58:37
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <bits/stdc++.h>

using namespace std;
int n, q;
int t[250001][19];
fstream fin("stramosi.in",ios::in),fout("stramosi.out",ios::out);
int query(int nod, int k) {
    for (int h = 18; h >= 0; h--) {
        if ((k & (1 << h))) {
            nod = t[nod][h];
        }
    }
    return nod;
}

int main() {
    fin >> n >> q;
    for (int i = 1; i <= n; i++) {
        fin >> t[i][0];
    }
    for (int h = 1; h <= 18; h++) {
        for (int i = 1; i <= n; i++) {
            t[i][h] = t[t[i][h - 1]][h - 1];
        }
    }
    while (q--) {
        int nod, k;
        fin >> nod >> k;
        fout << query(nod, k) << '\n';
    }
    return 0;
}