/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public class Node {
public Node left, right;
public int elem;
public Node (int val) {
this.elem = val;
}
void insert(int val){
if(this.elem < val){
if(this.right != null){
this.right.insert(val);
}
else{
this.right = new Node(val);
}
}
else if(this.elem > val){
if(this.left != null){
this.left.insert(val);
}
else{
this.left = new Node(val);
}
}
else {
return;
}
}
}
public void run () {
Node n = new Node(500000);
for(int i = 0; i < 100000; i++) {
n.insert(rand.nextInt(1000000));
}
}
long t
= System.
currentTimeMillis(); new Ideone().run();
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCQoJcHVibGljIGNsYXNzIE5vZGUgewogICAgCgkgICAgcHVibGljIE5vZGUgbGVmdCwgcmlnaHQ7CgkgICAgcHVibGljIGludCBlbGVtOwoJICAgIAoJICAgIHB1YmxpYyBOb2RlIChpbnQgdmFsKSB7CgkgICAgICAgIHRoaXMuZWxlbSA9IHZhbDsKCSAgICB9CgkgICAgCgkgICAgdm9pZCBpbnNlcnQoaW50IHZhbCl7CgkgICAgICAgIGlmKHRoaXMuZWxlbSA8IHZhbCl7CgkgICAgICAgICAgICBpZih0aGlzLnJpZ2h0ICE9IG51bGwpewoJICAgICAgICAgICAgICAgIHRoaXMucmlnaHQuaW5zZXJ0KHZhbCk7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBlbHNlewoJICAgICAgICAgICAgICAgIHRoaXMucmlnaHQgPSBuZXcgTm9kZSh2YWwpOwoJICAgICAgICAgICAgfQoJICAgICAgICB9CgkgICAgICAgIGVsc2UgaWYodGhpcy5lbGVtID4gdmFsKXsKCSAgICAgICAgICAgIGlmKHRoaXMubGVmdCAhPSBudWxsKXsKCSAgICAgICAgICAgICAgICB0aGlzLmxlZnQuaW5zZXJ0KHZhbCk7CgkgICAgICAgICAgICB9CgkgICAgICAgICAgICBlbHNlewoJICAgICAgICAgICAgICAgIHRoaXMubGVmdCA9IG5ldyBOb2RlKHZhbCk7CgkgICAgCgkgICAgICAgICAgICB9CgkgICAgICAgIH0KCSAgICAgICAgZWxzZSB7CgkgICAgICAgICAgICByZXR1cm47CgkgICAgICAgIH0KCSAgICB9CgkgICAgCgl9CgkKCXB1YmxpYyB2b2lkIHJ1biAoKSB7CgkgICAgUmFuZG9tIHJhbmQgPSBuZXcgUmFuZG9tKCk7CgkgICAgTm9kZSBuID0gbmV3IE5vZGUoNTAwMDAwKTsKCSAgICBmb3IoaW50IGkgPSAwOyBpIDwgMTAwMDAwOyBpKyspIHsKCSAgICAgICAgbi5pbnNlcnQocmFuZC5uZXh0SW50KDEwMDAwMDApKTsKCSAgICB9Cgl9CgkKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbiB7CgkJbG9uZyB0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgkJbmV3IElkZW9uZSgpLnJ1bigpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKS10KTsKCX0KfQ==