1
class ThroneInheritance {
2
public:
3
ThroneInheritance(string kingName) {
4
curr_king = kingName;
5
}
6

7
void birth(string parentName, string childName) {
8
children[parentName].push_back(childName);
9
}
10

11
void death(string name) {
12
dead.insert(name);
13
}
14

15
void rec(string parent) {
16
if (!dead.count(parent)) inheritance.push_back(parent);
17
for (auto child : children[parent]) rec(child);
18
}
19

20
vector<string> getInheritanceOrder() {
21
inheritance = {};
22
rec(curr_king);
23
return inheritance;
24
}
25

26
private:
27
unordered_map<string, vector<string>> children;
28
vector<string> inheritance;
29
unordered_set<string> dead;
30
string curr_king;
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0