#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个整数xix_{i}xix_{i}为第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

数据范围与约定

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

感谢@ミク 提供的翻译