#iroha2019day1j. [iroha2019_day1_j]ヌクレオチド

[iroha2019_day1_j]ヌクレオチド

问题描述

高桥君为了征服世界决定制造 QQ 种病毒。为此,考虑到碱基序列是很重要的,但是由于候选项太多了,他向你求助。

xx 种病毒的碱基序列可以表示为一个长度为 NxN_x 的序列 A1,A2,cdots,ANxA_1, A_2, \\cdots, A_{N_x},满足以下条件:

  • 每个元素是 0011
  • 是回文序列。也就是说,对于 1leqileqNx1 \\leq i \\leq N_x,满足 Ai=ANx+1iA_i = A_{N_x+1-i}
  • 具有 KxK_x 个逆序对。其中逆序对是指整数对 (i,j)(i, j),满足 i<ji < j 并且 Ai>AjA_i > A_j

满足条件的序列 AiA_i 有多少种呢?答案可能非常大,所以请输出除以 109+710^9+7 的余数。

约束条件

  • 1leqQleq1051 \\leq Q \\leq 10^5
  • 1leqNileq1051 \\leq N_i \\leq 10^5
  • 0leqKileqNi(Ni1)/20 \\leq K_i \\leq N_i(N_i - 1) / 2
  • 输入都是整数

输入

输入从标准输入读取,并具有以下格式。

QQ N1K1N_1\\ K_1 vdots\\vdots NQKQN_Q\\ K_Q

输出

请输出 QQ 行结果。

ii 行输出第 ii 种病毒的可能序列数,除以 109+710^9+7 的余数。


示例 1

4
3 0
3 1
3 2
3 3

输出示例 1

2
2
0
0

示例 2

5
4 2
5 3
6 4
16 8
869 120

输出示例 2

2
4
6
0
0