public class Main {
public static void main
(String[] args
) { //
}
private class Node<E> {
private Node<E> root = null;
private Node(E element) {
balance(root);
}
private void add(Node<E> n, E element) {
Node<E> e = new Node<E>(element);
if (n == null)
root = e;
else if (n.compareTo(e) > 0)
if (n.hasLeft())
add(n.getLeft(), element);
else
n.setLeft(e);
else if (n.hasRight())
add(n.getRight(), element);
else
n.setRight(e);
balance(e);
}
public int compareTo(Node<E> e) {
return 0;
}
private Node<E> getLeft() {
return null;
}
private Node<E> getRight() {
return null;
}
private boolean hasLeft() {
return true;
}
private boolean hasRight() {
return true;
}
private void setLeft(Node<E> e) {
}
private void setRight(Node<E> e) {
}
private void balance(Node<E> e) {
}
}
}
cHVibGljIGNsYXNzIE1haW4gewogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewoJCS8vCgl9Cglwcml2YXRlIGNsYXNzIE5vZGU8RT4gewoJCXByaXZhdGUgTm9kZTxFPiByb290ID0gbnVsbDsKCQlwcml2YXRlIE5vZGUoRSBlbGVtZW50KSB7CgkJCWJhbGFuY2Uocm9vdCk7CgkJfQoJCXByaXZhdGUgdm9pZCBhZGQoTm9kZTxFPiBuLCBFIGVsZW1lbnQpIHsKCQkJTm9kZTxFPiBlID0gbmV3IE5vZGU8RT4oZWxlbWVudCk7CgkJCWlmIChuID09IG51bGwpCgkJCQlyb290ID0gZTsKCQkJZWxzZSBpZiAobi5jb21wYXJlVG8oZSkgPiAwKQoJCQkJaWYgKG4uaGFzTGVmdCgpKQoJCQkJCWFkZChuLmdldExlZnQoKSwgZWxlbWVudCk7CgkJCQllbHNlCgkJCQkJbi5zZXRMZWZ0KGUpOwoJCQllbHNlIGlmIChuLmhhc1JpZ2h0KCkpCgkJCQlhZGQobi5nZXRSaWdodCgpLCBlbGVtZW50KTsKCQkJZWxzZQoJCQkJbi5zZXRSaWdodChlKTsKCQkJYmFsYW5jZShlKTsKCQl9CgkJcHVibGljIGludCBjb21wYXJlVG8oTm9kZTxFPiBlKSB7CgkJCXJldHVybiAwOwoJCX0KCQlwcml2YXRlIE5vZGU8RT4gZ2V0TGVmdCgpIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoJCXByaXZhdGUgTm9kZTxFPiBnZXRSaWdodCgpIHsKCQkJcmV0dXJuIG51bGw7CgkJfQoJCXByaXZhdGUgYm9vbGVhbiBoYXNMZWZ0KCkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcHJpdmF0ZSBib29sZWFuIGhhc1JpZ2h0KCkgewoJCQlyZXR1cm4gdHJ1ZTsKCQl9CgkJcHJpdmF0ZSB2b2lkIHNldExlZnQoTm9kZTxFPiBlKSB7CgkJfQoJCXByaXZhdGUgdm9pZCBzZXRSaWdodChOb2RlPEU+IGUpIHsKCQl9CgkJcHJpdmF0ZSB2b2lkIGJhbGFuY2UoTm9kZTxFPiBlKSB7CgkJfQoJfQp9Cg==