P16871 [HackerEarth] A boy named P loves a girl named G. It is the Valentine'’s week and Chocolate Day is approaching, so P wants to give some chocolates to G but he is afraid to give them himself. So he tak
普及
题目描述

A boy named P loves a girl named G. It is the Valentine'’s week and Chocolate Day is approaching, so P wants to give some chocolates to G but he is afraid to give them himself. So he takes help of another girl named S.

P buys some chocolates from a shop. There are N types of chocolates and there are a total of Ai chocolates of ith type where 1 ≤ i ≤ N.

Now P gives these chocolates to S and tells her to give them to G for him. However S likes chocolates so much that she eats all the chocolates and tells P that
G refused his chocolates.

Now, S has a very peculiar way of eating the chocolates. She eats the last chocolate of type i +1 only after she has finished eating all chocolates of
type i (for all 1 ≤ i < N).

Given all the values of Ai, you need to find the number of ways S can eat those chocolates.

Chocolates of same type should be considered non distinguishable.

INPUT:

First line of input contains an integer T (1≤ T ≤ 10), the number of test cases.

First line of each test case contains an integer N (1≤ N ≤ 1027). Next line of each test case contains N integers.
The ith integer corresponds to the value ai. (1 ≤ Ai ≤ 1027).
Also, total number of chocolates is less than or equal to 1027.

OUTPUT:

For each test case print a single integer, the number of ways S can eat those chocolates. As the number can be very large, print it modulo 10^9+7.

SAMPLE INPUT
2
1
5
3
3 2 1

SAMPLE OUTPUT
1
4

Explanation

1st Test Case

There are 5 chocolates of Type 1. So, S has only one way of eating them.

2nd Test Case

Here, There are 3 chocolates of Type 1, 2 chocolates of Type 2 and 1 chocolate of Type 3. S can eat them in the following 4 ways:
1 1 1 2 2 3
1 1 2 1 2 3
1 2 1 1 2 3
2 1 1 1 2 3

输入格式

见题面

输出格式

见题面

样例输入
7 1027 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 200 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 169 2 2 2 1 2 1 3 3 1 3 2 3 1 2 4 2 4 1 3 1 5 2 2 1 3 1 1 2 1 2 1 2 3 1 2 1 3 4 1 1 1 2 1 3 1 3 1 3 2 2 2 2 2 3 1 3 5 3 2 1 2 1 1 2 2 1 2 2 2 2 2 1 1 5 1 1 2 1 1 2 2 1 2 2 1 6 1 1 3 1 1 1 2 2 3 1 3 1 2 1 1 2 1 3 1 3 2 1 3 2 1 1 3 2 1 3 1 2 2 1 3 2 1 2 1 3 1 2 3 1 5 2 1 2 3 5 2 2 2 3 1 4 4 2 1 2 1 1 1 3 1 2 2 3 3 2 2 3 2 4 2 1 2 1 3 3 2 1 4 169 3 6 4 3 2 4 3 4 4 5 4 5 4 4 2 2 2 6 3 4 5 2 1 1 4 2 4 2 1 4 3 3 2 4 4 2 3 6 3 5 4 2 3 2 4 2 1 5 5 1 2 3 2 2 3 3 2 4 2 2 1 3 3 1 3 1 5 3 3 2 6 6 2 3 3 5 1 1 3 1 3 2 4 2 3 4 4 4 5 3 5 6 3 4 3 2 1 2 6 4 2 4 3 5 1 1 4 3 3 3 3 3 4 4 5 1 1 2 2 4 4 1 1 2 4 4 1 1 4 4 2 2 4 3 4 2 3 2 3 1 1 4 5 3 2 2 3 3 4 3 2 3 2 4 2 3 1 3 4 2 3 4 3 1 2 2 3 4 1 507 3 1 1 1 2 1 1 1 3 2 2 3 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 3 2 4 1 1 2 1 1 1 3 2 1 1 3 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 2 2 1 2 3 1 2 1 2 1 2 2 2 2 1 1 1 1 1 1 1 1 2 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 1 2 1 1 2 2 1 3 3 3 2 2 2 4 2 1 1 1 2 1 1 1 1 1 2 2 2 1 2 1 1 2 1 1 2 2 1 1 1 2 1 1 1 1 3 3 3 1 1 2 2 1 2 1 1 3 2 1 1 2 1 1 1 1 2 2 1 1 2 2 1 1 3 1 1 1 2 1 1 1 3 2 2 3 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 3 2 4 1 1 2 1 1 1 3 2 1 1 3 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 2 2 1 2 3 1 2 1 2 1 2 2 2 2 1 1 1 1 1 1 1 1 2 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 1 2 1 1 2 2 1 3 3 3 2 2 2 4 2 1 1 1 2 1 1 1 1 1 2 2 2 1 2 1 1 2 1 1 2 2 1 1 1 2 1 1 1 1 3 3 3 1 1 2 2 1 2 1 1 3 2 1 1 2 1 1 1 1 2 2 1 1 2 2 1 1 3 1 1 1 2 1 1 1 3 2 2 3 2 1 2 1 1 2 1 1 1 1 1 1 1 1 1 2 1 3 2 4 1 1 2 1 1 1 3 2 1 1 3 1 2 1 1 1 1 2 1 1 2 1 2 1 1 1 1 2 2 1 2 3 1 2 1 2 1 2 2 2 2 1 1 1 1 1 1 1 1 2 1 2 1 2 1 1 1 2 1 2 1 1 1 1 1 1 2 1 1 2 2 1 3 3 3 2 2 2 4 2 1 1 1 2 1 1 1 1 1 2 2 2 1 2 1 1 2 1 1 2 2 1 1 1 2 1 1 1 1 3 3 3 1 1 2 2 1 2 1 1 3 2 1 1 2 1 1 1 1 2 2 1 1 2 2 1 1 169 4 2 2 2 2 4 4 4 7 4 6 7 4 4 3 3 2 1 3 7 3 5 1 2 5 1 5 8 5 2 5 6 4 1 1 8 3 3 1 3 2 4 4 6 4 5 3 4 2 3 4 5 5 2 3 3 4 5 4 4 3 8 3 4 3 3 6 8 6 4 6 2 4 4 3 4 3 2 4 5 4 6 6 4 5 5 1 4 2 4 3 6 5 2 8 4 4 4 4 6 4 5 3 2 4 4 5 3 5 4 2 3 6 4 6 3 5 5 6 5 3 1 3 4 3 3 5 6 2 1 3 3 2 5 4 1 7 5 4 3 4 4 5 5 5 11 4 3 4 5 4 5 7 3 1 8 4 3 4 3 5 6 4 1 1 3 3 6 7 168 4 7 5 7 5 2 10 4 6 3 7 6 6 8 9 4 4 4 7 9 6 5 8 2 4 3 2 3 1 3 3 9 6 5 4 4 2 4 9 3 6 5 3 3 7 3 6 5 4 5 6 5 9 6 4 6 6 6 5 8 6 2 7 5 4 6 7 4 7 7 4 5 7 5 3 8 5 6 6 3 6 3 6 4 2 2 5 4 5 3 8 4 6 5 10 4 4 4 5 5 4 3 4 5 6 4 3 1 2 2 6 4 4 3 3 5 6 3 6 8 3 3 6 7 5 3 6 2 11 2 4 5 3 4 5 5 4 3 7 5 6 3 2 5 5 5 3 5 5 3 2 3 3 5 3 6 5 1 7 4 3 6 7 6 6 4 6 4
样例输出
1 1 50513543 697993839 246347485 214737534 399160263