#codefestival2016qualCe. [codefestival_2016_qualC_e]Encyclopedia of Permutations
[codefestival_2016_qualC_e]Encyclopedia of Permutations
题目描述
某天高桥先生拿起一本包含 个整数 到 的全排列的字典。该字典有 页,第 页()包含字典中第 个按字典序排列的排列。
高桥先生希望在这本字典中查找一个特定长度为 的排列,但他忘记了其中一部分。
他记得的排列可以用序列 来描述。如果 ,则表示他忘记了排列中的第 个元素;否则,表示他记得排列中的第 个元素,且其值为 。
他决定查找字典中所有可能的排列。计算他需要检查的页码之和,对 取模。
约束条件
- 如果 (),则 ,且 且 。
输入
从标准输入读入数据,输入格式如下:
输出
打印他需要检查的页码之和,对 取模。
示例输入 1
4
0 2 3 0
示例输出 1
23
可能的排列为 [, , , ] 和 [, , , ]。前者在第 页,后者在第 页,所以答案为 。
示例输入 2
3
0 0 0
示例输出 2
21
由于长度为 的所有排列都可行,答案为 。
示例输入 3
5
1 2 3 5 4
示例输出 3
2
高桥先生记得了排列的所有元素。
示例输入 4
1
0
示例输出 4
1
字典只有一页。
示例输入 5
10
0 3 0 0 1 0 4 0 0 0
示例输出 5
953330050