#CF2125E. 互补和集合
互补和集合
E. 互补和集合
时间限制:2 秒
内存限制:1024 兆字节
如果一个整数集合 能通过以下方式得到,则称它为互补和集合:
- 选择一个由 个正整数组成的数组 ( 是任意正整数);
- 计算数组 中所有元素的和 ;
- 对于数组 中的每个元素 ,将数 加入集合,即 。
注意, 不是多重集,因此其中的每个数是唯一的。例如,若选择数组 ,则 ,。
你的任务是统计满足以下条件的不同互补和集合的个数:
- 集合恰好包含 个元素;
- 集合中的每个元素都是 到 之间的整数。
如果存在一个元素属于第一个集合但不属于第二个集合,则认为两个集合不同。
由于答案可能很大,请输出它对 取模的结果。
输入
每个测试包含多个测试用例。第一行包含一个整数 ()—— 测试用例数。
每个测试用例的唯一一行包含两个整数 和 ()。
输入数据的附加限制:
- 所有测试用例的 之和不超过 ;
- 所有测试用例的 之和不超过 。
输出
对于每个测试用例,输出一个整数 —— 答案对 取模。
样例
输入
5
1 7
2 5
3 10
27 31415
1000 999
输出
7
10
34
605089068
0
说明
- 第一个测试用例中,恰好有 个符合条件的集合:
。 - 第二个测试用例中,有 个符合条件的集合:
$\{1,2\},\{1,3\},\{1,4\},\{1,5\},\{2,3\},\{2,4\},\{2,5\},\{3,4\},\{3,5\},\{4,5\}$。