#fukabintree. [fuka_bintree]Bintree

[fuka_bintree]Bintree

描述

nn 个节点,每个节点上写有一个数字。使用这 nn 个节点构建一棵二叉树。关于二叉树的定义,请参考 Wikipedia 页面 或其他参考资料。

我们用树的"重量"来定义树,即树中包含的所有数字的和。当树为空集合时,重量定义为 00

当满足以下条件时,称树是_稳定_的:对于除了叶子节点之外的所有节点,左子树和右子树的重量之差的绝对值在闭区间 [a,b][a, b] 内。其中,左子树是以左子节点为根(如果没有左子节点,则为空集合),右子树是以右子节点为根的部分树。

给定 nn 个节点的值以及 aabb,请输出稳定二叉树的数量。在计算二叉树的数量时,要将 nn 个节点视为不同的节点。此外,不同的子节点顺序或节点的父子关系也被视为不同的情况。

输入

输入包含多个测试用例。输入以只包含三个 00 的行结束。每个测试用例的格式如下:

nn aa bb x1xnx_1…x_n

  • 1n131 ≦ n ≦ 13
  • 0a,b20000 ≦ a, b ≦ 2000
  • 1xi1001 ≦ x_i ≦ 100

每个测试用例的第一行包含三个整数 n,a,bn, a, b

每个测试用例的第二行包含 nn 个整数 xix_i,表示第 ii 个节点上的数字。

保证每个文件至多包含 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

资料来源

ふか杯 5th Contest