有一个长度为 2n 的高度序列 h,其中 1∼n 每个数都恰好出现了 2 次。
之后进行了若干次操作,每次操作会让满足存在 i<j,hi=hj 的 i 的 h 减一。如果 h 为 0 则不再下降。
当进行了足够多次操作后,我们可以证明,会有恰好 n 个位置的 h 不为 0,且他们的值恰好为 1∼n 各一次。
现在给定你这 n 个位置 p1,p2,⋯,pn,你需要求出满足这样的条件的 h 的个数模 109+7 的值。
输入格式
第一行,一个整数 n。
第二行,n 个整数 pi。
输出格式
一行,一个整数,表示答案。
样例一
input
3 3 4 6
output
5
explanation
(2,2,3,3,1,1),(2,3,2,3,1,1),(2,3,3,2,1,1),(3,2,2,3,1,1),(3,2,3,2,1,1) 满足条件。因此答案为 5。
样例二
input
10 5 8 9 13 15 16 17 18 19 20
output
147003663
数据范围与提示
对于所有数据,1≤n≤500,1≤pi≤2n,pi 严格递增。
子任务编号 | n≤ | 分值 |
---|---|---|
1 | 6 | 20 |
2 | 20 | 20 |
3 | 50 | 30 |
4 | 30 |
时间限制:1s
空间限制:512MB