#include <vector>
using namespace std;
struct TreeNode {
int val;
TreeNode *left, *right;
inline TreeNode(int x = 0, TreeNode *l = nullptr, TreeNode *r = nullptr) :
val(x), left(l), right(r) {} };
class Solution {
static constexpr int M = 1e5+1;
using ivector = vector<int>;
using imatrix = vector<ivector>;
using node_pointer = TreeNode*;
public:
inline node_pointer createBinaryTree(imatrix &descriptions) {
vector<node_pointer> node(M,nullptr);
vector<bool> has_parent(M,false);
for (auto desc: descriptions) {
const int parent = desc[0];
const int child = desc[1];
const int is_left = desc[2];
if (node[parent] == nullptr)
node[parent] = new TreeNode(parent);
if (node[child] == nullptr)
node[child] = new TreeNode(child);
if (has_parent[child] = true, is_left)
node[parent]->left = node[child];
else
node[parent]->right = node[child]; }
int root = 1;
while (has_parent[root] or node[root] == nullptr)
++root;
return node[root]; } };
int main() {
return 0; }
I2luY2x1ZGUgPHZlY3Rvcj4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBUcmVlTm9kZSB7CglpbnQgdmFsOwoJVHJlZU5vZGUgKmxlZnQsICpyaWdodDsKCWlubGluZSBUcmVlTm9kZShpbnQgeCA9IDAsIFRyZWVOb2RlICpsID0gbnVsbHB0ciwgVHJlZU5vZGUgKnIgPSBudWxscHRyKSA6IAoJCXZhbCh4KSwgbGVmdChsKSwgcmlnaHQocikge30gfTsKCmNsYXNzIFNvbHV0aW9uIHsKICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IE0gPSAxZTUrMTsKICAgIHVzaW5nIGl2ZWN0b3IgPSB2ZWN0b3I8aW50PjsKICAgIHVzaW5nIGltYXRyaXggPSB2ZWN0b3I8aXZlY3Rvcj47CiAgICB1c2luZyBub2RlX3BvaW50ZXIgPSBUcmVlTm9kZSo7CnB1YmxpYzoKICAgIGlubGluZSBub2RlX3BvaW50ZXIgY3JlYXRlQmluYXJ5VHJlZShpbWF0cml4ICZkZXNjcmlwdGlvbnMpIHsKICAgICAgICB2ZWN0b3I8bm9kZV9wb2ludGVyPiBub2RlKE0sbnVsbHB0cik7CiAgICAgICAgdmVjdG9yPGJvb2w+ICAgaGFzX3BhcmVudChNLGZhbHNlKTsKICAgICAgICBmb3IgKGF1dG8gZGVzYzogZGVzY3JpcHRpb25zKSB7CiAgICAgICAgICAgIGNvbnN0IGludCBwYXJlbnQgID0gZGVzY1swXTsKICAgICAgICAgICAgY29uc3QgaW50IGNoaWxkICAgPSBkZXNjWzFdOwogICAgICAgICAgICBjb25zdCBpbnQgaXNfbGVmdCA9IGRlc2NbMl07IAogICAgICAgICAgICBpZiAobm9kZVtwYXJlbnRdID09IG51bGxwdHIpCiAgICAgICAgICAgICAgICBub2RlW3BhcmVudF0gPSBuZXcgVHJlZU5vZGUocGFyZW50KTsKICAgICAgICAgICAgaWYgKG5vZGVbY2hpbGRdID09IG51bGxwdHIpCiAgICAgICAgICAgICAgICBub2RlW2NoaWxkXSA9IG5ldyBUcmVlTm9kZShjaGlsZCk7CiAgICAgICAgICAgIGlmIChoYXNfcGFyZW50W2NoaWxkXSA9IHRydWUsIGlzX2xlZnQpCiAgICAgICAgICAgICAgICBub2RlW3BhcmVudF0tPmxlZnQgPSBub2RlW2NoaWxkXTsKICAgICAgICAgICAgZWxzZSAKICAgICAgICAgICAgICAgIG5vZGVbcGFyZW50XS0+cmlnaHQgPSBub2RlW2NoaWxkXTsgfQogICAgICAgIGludCByb290ID0gMTsKICAgICAgICB3aGlsZSAoaGFzX3BhcmVudFtyb290XSBvciBub2RlW3Jvb3RdID09IG51bGxwdHIpCiAgICAgICAgICAgICsrcm9vdDsKICAgICAgICByZXR1cm4gbm9kZVtyb290XTsgfSB9OwoKaW50IG1haW4oKSB7CglyZXR1cm4gMDsgfQoJ