Cod sursa(job #3003235)

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

using namespace std;
int n, q;
int t[250001][19];
int main() {
    freopen("stramosi.in", "r", stdin);
    freopen("stramosi.out", "w", stdout);
    cin >> n >> q;
    for (int i = 1; i <= n; i++) {
        cin >> 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;
        cin >> nod >> k;
        for(int h=18;h>=0;h--)
        {
            if(k & (1<<h))
            {
                nod = t[nod][h];
            }
        }
        cout<<nod<<'\n';
    }
    return 0;
}