Pagini recente » Cod sursa (job #79642) | Cod sursa (job #521939) | Cod sursa (job #2112576) | Cod sursa (job #240365) | Cod sursa (job #3234061)
#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;
}
}