Мудрый Мудрец
Ученик
(162)
3 месяца назад
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
unordered_map<int, vector<int>> children;
int count = 0;
void dfs(int node) {
count++;
for (int child : children[node]) {
dfs(child);
}
}
int main() {
int N;
cin >> N;
children.clear();
for (int i = 0; i < N; i++) {
int message, parent;
cin >> message >> parent;
if (parent != 0) {
children[parent].push_back(message);
}
}
int k;
cin >> k;
dfs(k);
cout << count << endl;
return 0;
}
Вот моё решение, которое прошло, но может оно недостаточно эффективное в любом случае - https://codeshare.io/jAjm0D