路径计数机
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

有一棵n个点的树和两个整数p, q,求满足以下条件的四元组(a, b, c, d)的个数:
1.
2. 点a到点b的经过的边数为p。
3. 点c到点d的经过的边数为q。
4. 不存在一个点,它既在点a到点b的路径上,又在点c到点d的路径上。

点击下载大样例

输入描述:

第一行三个整数n,p,q。
接下来n - 1行,每行两个整数u, v,表示树上存在一个连接点u和点v的边。

输出描述:

输出一个整数,表示答案。
示例1

输入

复制
5 2 1
1 2
2 3
3 4
2 5

输出

复制
4

说明

合法的四元组一共有:
(1, 5, 3, 4),
(1, 5, 4, 3),
(5, 1, 3 ,4),
(5, 1, 4, 3)。
示例2

输入

复制
4 1 1
1 2
2 3
3 4

输出

复制
8

备注:

对于前的数据,
对于前的数据,
对于另外的数据,p = 2, q = 2。
对于另外的数据,树是一条链。
对于另外的数据,树随机生成。
对于所有数据,保证给出的是一棵合法的树。