3037: 挂科

内存限制:128 MB 时间限制:2.000 S
评测方式:文本比较 命题人:外部导入
提交:6 解决:4

题目描述

小Y非常喜欢学习,但却又经常翘课,现在期末来临,他要挂科了。

期末考中小Y一共考了 n 门课,这 n 门课的分数为 ai,而只要有一门课不及格,他就会留级。

现在小Y不知道每门课及格所要求的分数,他只知道他每一门课的分数都要严格高于这门课的要求分数。不过,小Y有个厉害的技能,那就是换成绩,具体地说,他可以将任意两门课的成绩互换,且他可以互换任意次。

现在他想知道,有多少种及格要求分数能不让他挂科。(及格要求分数自然是非负整数。)

由于答案数可能很大,你只需要输出模 1000000007(109 +7) 后的值即可。

输入

第一行一个整数 T,表示数据组数。

接下来 T 行每行一组数据。每组数据以一个整数 n 开头,表示课程数,后面 n 个整数 ai 表示小Y这 n 门课的成绩。

输出

共 T 行,第 i 行表示第 i 组数据的答案。

样例输入 复制

4
2 1 2
3 2 5 3
4 1 2 3 4
4 9 8 3 5

样例输出 复制

3
74
125
4371

提示

【样例说明】

第一组数据中,合法的要求分数为 : (0, 1), (0, 0), (1, 0)

【数据范围】

20%的数据:n ≤ 7, ai ≤ 10

40%的数据:n ≤ 100, ai ≤ 100

70%的数据:n ≤ 200, ai ≤ 109

100%的数据:1 ≤ n ≤ 1000, 0 ≤ ai ≤ 109, T ≤ 5