每个测试文件均包含多组测试数据。第一行输入一个整数 代表数据组数,每组测试数据描述如下:第一行输入一个整数 代表排列中的元素数量。第二行输入 个整数 代表排列的每一个前缀的最小值。除此之外,保证单个测试文件的 之和不超过 。
对于每一组测试数据,新起一行。输出一个整数,代表符合条件的排列的数量。特别地,若不存在符合要求的排列,则只需要输出 即可。由于答案可能很大,请将答案对 取模后输出。
4 3 3 2 1 4 2 2 1 1 2 2 2 7 6 2 2 1 1 1 1
1 2 0 24
对于第一组测试数据,符合条件的排列仅为 。对于第二组测试数据,需要满足:,有且仅有排列 和 满足条件。对于第三组测试数据,长度为 的排列有且仅有 和 两种。而前者的前缀最小值依次为 ,后者的前缀最小值依次为 ,均与输入的 数组不符,因此不存在符合条件的排列。