Cod sursa(job #3146325)

Utilizator elisa.ipateElisa Ipate elisa.ipate Data 20 august 2023 14:26:40
Problema Stramosi Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <fstream>
#include <vector>


using namespace std;


int parent[20][300000];


int main()
{
    ifstream cin("stramosi.in", "r");
    ofstream cout("stramosi.out", "w");
    int n, i, a, j, m, p, q;
    cin >> n >> m;
    for( i = 1; i <= n; i++ ) {
        cin >> a;
        parent[0][i] = a;
    }


    for( i = 1; i < 20; i++ ) {
        for( j = 1; j <= n; j++ )
            parent[i][j] = parent[i-1][parent[i-1][j]];
    }

    for( i = 0; i < m; i++ ) {
        cin >> q >> p;
        for( j = 19; j >= 0; j-- ) {
            if( (1 << j) <= p ) {
                q = parent[j][q];
                p -= (1 << j);
            }

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

    return 0;
}