Cod sursa(job #3234061)

Utilizator Cristi1123Lucan Crisitian Cristi1123 Data 6 iunie 2024 10:56:29
Problema Stramosi Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <iostream>
#include <vector>
#include <stdint.h>
#include <fstream>
using namespace std;

int main(){
    ifstream fin("stramosi.in");
    ofstream fout("stramosi.out");

    uint32_t nr_people, nr_queries;
    fin >> nr_people >> nr_queries;

    vector<uint32_t> descendents(nr_people + 1);
    vector<vector<uint32_t>> all_descendents(nr_people  + 1);
    for (uint32_t i = 1; i <= nr_people; ++i){
        fin >> descendents[i];
        all_descendents[i] = all_descendents[descendents[i]];
        all_descendents[i].push_back(descendents[i]);
    }

    while (nr_queries--){
        uint32_t child, nr_descendents;
        fin >> child >> nr_descendents;
        
        uint32_t max_nr_des = all_descendents[child].size();
        if (nr_descendents > max_nr_des)
            fout << 0 << endl;
        else
            fout << all_descendents[child][max_nr_des - nr_descendents] << endl;
    }

    
    
}