#include <iostream>
#include <fstream>
using namespace std;
struct Node {
int data;
Node *left, *right;
};
Node* insert(Node*&, int);
int sum_of_vertex(const Node*);
int main() {
ifstream fin("input.txt");
ofstream fout("output.txt");
int d;
Node* root = nullptr;
while (fin >> d)
insert(root, d);
fout << sum_of_vertex(root);
fin.close();
fout.close();
return 0;
}
Node* insert(Node*& root, int d) {
if (root == nullptr) {
root = new Node;
root->data = d;
root->left = nullptr;
root->right = nullptr;
}
else if (d < root->data)
root->left = insert(root->left, d);
else if (d > root->data)
root->right = insert(root->right, d);
return root;
}
int sum_of_vertex(const Node* root) {
int sum = 0, l, r;
if (root) {
l = (root->left != nullptr) ? sum_of_vertex(root->left) : 0;
r = (root->right != nullptr) ? sum_of_vertex(root->right) : 0;
sum += l + r + root->data;
return sum;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZSB7CglpbnQgZGF0YTsKCU5vZGUgKmxlZnQsICpyaWdodDsKfTsKCk5vZGUqIGluc2VydChOb2RlKiYsIGludCk7CmludCBzdW1fb2ZfdmVydGV4KGNvbnN0IE5vZGUqKTsKCmludCBtYWluKCkgewoJaWZzdHJlYW0gZmluKCJpbnB1dC50eHQiKTsKCW9mc3RyZWFtIGZvdXQoIm91dHB1dC50eHQiKTsKCWludCBkOwoJTm9kZSogcm9vdCA9IG51bGxwdHI7Cgl3aGlsZSAoZmluID4+IGQpIAoJCWluc2VydChyb290LCBkKTsKCWZvdXQgPDwgc3VtX29mX3ZlcnRleChyb290KTsKCWZpbi5jbG9zZSgpOwoJZm91dC5jbG9zZSgpOwoJcmV0dXJuIDA7Cn0KCk5vZGUqIGluc2VydChOb2RlKiYgcm9vdCwgaW50IGQpIHsKCWlmIChyb290ID09IG51bGxwdHIpIHsKCQlyb290ID0gbmV3IE5vZGU7CgkJcm9vdC0+ZGF0YSA9IGQ7CgkJcm9vdC0+bGVmdCA9IG51bGxwdHI7CgkJcm9vdC0+cmlnaHQgPSBudWxscHRyOwoJfQoJZWxzZSBpZiAoZCA8IHJvb3QtPmRhdGEpCgkJcm9vdC0+bGVmdCA9IGluc2VydChyb290LT5sZWZ0LCBkKTsKCWVsc2UgaWYgKGQgPiByb290LT5kYXRhKQoJCXJvb3QtPnJpZ2h0ID0gaW5zZXJ0KHJvb3QtPnJpZ2h0LCBkKTsKCXJldHVybiByb290Owp9CgppbnQgc3VtX29mX3ZlcnRleChjb25zdCBOb2RlKiByb290KSB7CglpbnQgc3VtID0gMCwgbCwgcjsKCWlmIChyb290KSB7CgkJbCA9IChyb290LT5sZWZ0ICE9IG51bGxwdHIpID8gc3VtX29mX3ZlcnRleChyb290LT5sZWZ0KSA6IDA7CgkJciA9IChyb290LT5yaWdodCAhPSBudWxscHRyKSA/IHN1bV9vZl92ZXJ0ZXgocm9vdC0+cmlnaHQpIDogMDsgCgkJc3VtICs9IGwgKyByICsgcm9vdC0+ZGF0YTsKCQlyZXR1cm4gc3VtOwoJfQoJcmV0dXJuIDA7Cn0=