#P2276. [HNOI2002] 农场的果树

[HNOI2002] 农场的果树

题目描述

Farmer John 的农场环境优美,其中生长了许多苹果树,而苹果正是 Farmer John 农场里奶牛最喜爱的食物!

一天,闲来无事的奶牛 Besty 坐在苹果树下。她忽然发现,农场里的苹果树都是的二叉树!——当然,这种二叉树并不是严格意义上的二叉树,它可能有左子树而不存在右子树,反之也有可能。

刚学过 Computer Science 的 Besty 给二叉树上每个节点记录下其左子树的节点个数。例如下面的一棵树:

                3
              /  \
             1     3
            / \   / \
           0   0  1  0
                 / \
                0   0

随后,用先序遍历给这棵树编码,需要注意的是叶子节点上的数值不必考虑。为了更方便表述,Besty 又在这样的编码前加入一个数字:该树上节点总数。于是,上面这棵数的编码就是:9 3 1 3 1。

这样一来,每一种编码就对应了一棵唯一的二叉树。

Besty 还发现,农场里的所有二叉树的节点总数都相同!并且在节点总数确定的情况下,对任意的合法编码,农场里都存在唯一的一棵树与之对应!

于是,Besty 将所有的二叉树按照上述编码规则编码,然后以编码为关键字进行字典排序。

现在,对于一个给定的编码,奶牛 Besty 想知道字典排序紧跟其后的编码是什么。

输入格式

输入文件名:next.in

输入文件有一行,为一个二叉树的编码。保证节点总数不超过 5×1035\times10^3

输出格式

输出文件名:next.out

输出文件有一行,为按字典排序紧跟其后的编码是什么。如果输入的编码是最后一个,则输出 -1

9 3 1 3 1
9 3 1 3 2 0