struct node
{
int date;
node * lc;
node * rc;
} ;
void vin( int k)
{
node * t= new node;
t- > date = k;
t- > lc= NULL ;
t- > rc= NULL ;
if ( start == NULL )
{
start= t;
}
else if ( start- > date < k)
{
if ( start- > rc== NULL )
start- > rc= t;
else
{
start = start- > rc;
vin( k) ;
}
}
else
{
if ( start- > lc== NULL )
start- > lc= t;
else
{
start = start- > lc;
vin( k) ;
}
}
}
ICAgICAgICAgICAgICBzdHJ1Y3Qgbm9kZQogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgaW50IGRhdGU7CiAgICAgICAgICAgICAgICAgIG5vZGUgKmxjOwogICAgICAgICAgICAgICAgICBub2RlICpyYzsKICAgICAgICAgICAgICB9OyAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAgIAogICAgICAgICAgICAgIHZvaWQgdmluKGludCBrKQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICBub2RlICp0PW5ldyBub2RlOwogICAgICAgICAgICAgICAgICB0LT5kYXRlID0gazsKICAgICAgICAgICAgICAgICAgdC0+bGM9TlVMTDsKICAgICAgICAgICAgICAgICAgdC0+cmM9TlVMTDsgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgaWYoc3RhcnQgPT0gTlVMTCkKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0PXQ7CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgZWxzZSBpZihzdGFydC0+ZGF0ZSA8IGspCiAgICAgICAgICAgICAgICAgIHsgICAgCiAgICAgICAgICAgICAgICAgICAgICAgaWYoc3RhcnQtPnJjPT1OVUxMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydC0+cmM9dDsKICAgICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHN0YXJ0LT5yYzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aW4oayk7CiAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgeyAgCiAgICAgICAgICAgICAgICAgICAgICAgaWYoc3RhcnQtPmxjPT1OVUxMKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydC0+bGM9dDsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydC0+bGM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpbihrKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9