Cod sursa(job #3323116)

Utilizator Radu_BicliBiclineru Radu Radu_Bicli Data 17 noiembrie 2025 10:21:23
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("stramosi.in");
ofstream fout("stramosi.out");
int n, q, i, p, niv[250002], tata[19][250002];

int main() {
    //ios_base::sync_with_stdio(false);
    fin.tie(nullptr);
    fout.tie(nullptr);

    fin >> n >> q;
    for(i = 1; i <= n; i++) fin >> tata[0][i];

    for(p = 1; p <= 18; p++) {
        for(i = 1; i <= n; i++) {
            tata[p][i] = tata[p - 1][tata[p - 1][i]];
        }
    }

    while(q--) {
        int q, p;
        fin >> q >> p;
        for(i = 18; i >= 0; i--) {
            if(p >> i & 1) q = tata[i][q];
        }
        fout << q << "\n";
    }

    return 0;
}