#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

输入文件有一行,为一个二叉树的编码。保证节点总数不超过5000。

输出格式

输出文件名:next.out

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

9 3 1 3 1
9 3 1 3 2 0