Cod sursa(job #2816830)

Utilizator mihnea_buzoiuMihnea Buzoiu mihnea_buzoiu Data 12 decembrie 2021 11:51:07
Problema Stramosi Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.61 kb
#include <bits/stdc++.h>

using namespace std;

const int N = 250002;
int v[20][N];

int n, m;

int main()
{
    freopen("stramosi.in", "r", stdin);
    freopen("stramosi.out", "w", stdout);

    cin >> n >> m;

    for (int i = 1; i<=n; i++)
        cin >> v[0][i];

    for (int k=0; k<18; k++){
        for (int i=1; i<=n; i++)
            v[k+1][i] = v[k][v[k][i]];
    }

    int q, p;
    for (int i=0; i<m; i++){
        cin >> q >> p;

        for (int j=20; j>=0; j--){
            if ((p & (1 << j)) != 0)
                q = v[j][q];

        }
        cout << q << "\n";
    }
}