Cod sursa(job #3132527)

Utilizator Alexandra789Alexandra Uceanu Alexandra789 Data 22 mai 2023 23:01:23
Problema Stramosi Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>

int stramosi[250001][18];

int main(){
    std::ifstream f("stramosi.in");
    std::ofstream g("stramosi.out");

    int n, m;
    f  >> n >> m;

    for(int i = 1; i <= n; i++)
        f >> stramosi[i][0];

    for(int i = 1; i <= n; i++)
        for(int j = 1; j < 18; j++)
            stramosi[i][j] = stramosi[stramosi[i][j - 1]][j - 1];

    for(int i = 0; i < m; i++){
        int nod, stramos;
        f >> nod >> stramos;

        for(int j = 0; j < 18 && nod != 0; j++)
            if(stramos & (1 << j))
                nod = stramosi[nod][j];
            
        g << nod << '\n';
    }
    return 0;
}