A binary search tree is a tree in which every node has at
most two children nodes (a left and a right child). Each node
has an integer written inside it. If the number is written inside a node, then the
numbers in its left subtree are less than and the numbers in its right
subtree are greater than X. You will be given a sequence of
integers between 1 and
(inclusive) such that each number appears in the sequence
exactly once. You are to create a binary search tree from the
sequence, putting the first number in the root node and
inserting every other number in order.
When inserting a new number in a tree, you first traverse the
tree as if you were searching for . When you arrive at a node
such that you can’t
continue searching for , you put as a left or right son of
depending on if
or , so that after the insertion
the tree will still be a binary search tree. After the
insertion you add the depth of to a counter and print the value of
. The counter
is set to in the beginning.
Input
The first line contains the integer , the length of the sequence.
The remaining lines
contain the numbers in the sequence, integers in the interval
. The numbers will
be distinct.
Output
Output integers
each on its own line, the values of the counter after each number is inserted into
the tree.
Sample Input 1 |
Sample Output 1 |
4
1
2
3
4
|
0
1
3
6
|
Sample Input 2 |
Sample Output 2 |
5
3
2
4
1
5
|
0
1
2
4
6
|
Sample Input 3 |
Sample Output 3 |
8
3
5
1
6
8
7
2
4
|
0
1
2
4
7
11
13
15
|