#include <iostream>
#include <unordered_set>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<pair<int, int> > prerequisites;
prerequisites.emplace_back(0,1);
prerequisites.emplace_back(2,0);
int n = 3;
vector<pair<int, unordered_set<int>>> graph(n); // NO MORE DEFAULT RVALUE
// We have to find our leaves:
bool leaf[n];
for(int i = 0; i < n; i++){
leaf[i] = true;
}
for(auto p : prerequisites){
graph[p.first].first++;
graph[p.first].second.insert(0);
leaf[p.second] = false;
}
vector<int> leaves;
for(int i = 0; i < n; i++){
if(leaf[i])
leaves.push_back(i); // This causes a segfault if I don't change it.
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCXZlY3RvcjxwYWlyPGludCwgaW50PiA+IHByZXJlcXVpc2l0ZXM7CglwcmVyZXF1aXNpdGVzLmVtcGxhY2VfYmFjaygwLDEpOwoJcHJlcmVxdWlzaXRlcy5lbXBsYWNlX2JhY2soMiwwKTsKCQogICAgaW50IG4gPSAzOwoJdmVjdG9yPHBhaXI8aW50LCB1bm9yZGVyZWRfc2V0PGludD4+PiBncmFwaChuKTsgLy8gTk8gTU9SRSBERUZBVUxUIFJWQUxVRQoJLy8gV2UgaGF2ZSB0byBmaW5kIG91ciBsZWF2ZXM6Cglib29sIGxlYWZbbl07Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCWxlYWZbaV0gPSB0cnVlOwoJfQoJCglmb3IoYXV0byBwIDogcHJlcmVxdWlzaXRlcyl7CglncmFwaFtwLmZpcnN0XS5maXJzdCsrOwoJZ3JhcGhbcC5maXJzdF0uc2Vjb25kLmluc2VydCgwKTsgCglsZWFmW3Auc2Vjb25kXSA9IGZhbHNlOwoJfQoJCgl2ZWN0b3I8aW50PiBsZWF2ZXM7Cglmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKCWlmKGxlYWZbaV0pCgkgICAgbGVhdmVzLnB1c2hfYmFjayhpKTsgLy8gVGhpcyBjYXVzZXMgYSBzZWdmYXVsdCBpZiBJIGRvbid0IGNoYW5nZSBpdC4KCX0KfQ==