时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述

的排列是一个长度为

的序列,其中从

到

的每个数字都只出现一次。

的全排列是将

的所有排列按字典顺序连接成一个序列的序列。如果

其中

是满足

的最小索引,则序列

在字典上小于

。
以下是此问题中使用的一些符号:
-

:

的全排列。例如,

。
-

:

的所有排列的集合。例如,

。
-
)
:

中等于

的连续子序列的数量。例如,
%3D2)
。
现在给定

和

,请计算
%5C%20modulo%5C%2010%5E9%2B7)
。
输入描述:
第一行包含一个整数
,表示数据组数。
接下来
行,每行包含两个整数
和
,如描述中所述。
输出描述:
对于每组数据,输出
。
备注:
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=7133