#fukabintree. [fuka_bintree]Bintree
[fuka_bintree]Bintree
(ふか杯5th Contest) D-Bintree
题目描述
由一个数字表示总共有n个节点。将这n个节点全部用来组成一棵二叉树。
一棵树的重量定义为这棵树所含的所有数字之和。当此树为空集合时,它的重量为0。
当满足以下条件时称这棵树为一棵稳定的树:对于此树中除叶节点外的所有节点,它的左子树与右子树的重量之差的绝对值在a或a以上,b或b以下。这里的左子树为以左儿子做根的部分树(当左儿子不存在时为空集合),同样的,右子树为以右儿子做根的部分树。
这n个节点的值和a,b是给定的,请输出稳定的二叉树的个数。在数二叉树个数时,要区分n个的所有节点。要区分子节点的顺序不同的情况、节点亲子关系不同的情况。
输入
输入为多组数据。输入结束的标志为仅含3个‘0’的一行。每组数据按以下格式:
n a b
x1...xn
每组数据的第一行为3个整数n,a,b。 每组数据的第二行n个整数,为第i个点的数字。 保证数据组数在1到20个之间。
输出
对每一组数据,输出一行满足条件的(稳定的)二叉树的个数。
样例
输入
1 0 100
1
2 3 3
1 2
3 0 2
1 2 3
10 0 10
1 2 3 4 5 6 7 8 9 10
13 0 10
1 2 3 4 5 6 7 8 9 10 11 12 13
0 0 0
输出
1
0
6
164650496
213181735360
数据范围与约定
感谢@ミク 提供的翻译