Cod sursa(job #3234071)

Utilizator Cristi1123Lucan Crisitian Cristi1123 Data 6 iunie 2024 11:07:43
Problema Stramosi Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1 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);
    vector<vector<uint32_t>> all_descendents(nr_people);
    for (uint32_t i = 0; i < nr_people; ++i){
        fin >> descendents[i];
        if (descendents[i] != 0){
            all_descendents[i] = all_descendents[descendents[i] - 1];
            all_descendents[i].push_back(descendents[i] - 1);
        }
    }

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

    
    
}