在一次探险中,小 H 发现了一个古老的封印。封印的本体是一个长度为
设
- 选择序列
的某个严格前缀最大值元素 ,即选择 满足 ,特别地, 总是序列 的严格前缀最大值; - 若
,将 插入序列 的尾端; - 删去序列
的前 个元素。
考虑如下例子:在
- 小 H 可以选择
,此时修改后的序列变为 ; - 小 H 可以选择
,此时修改后的序列变为 ; - 小 H 不能选择
,因为 ,这意味着 并非严格前缀最大值。
小 H 可以进行任意多次修改操作,也可以不进行任何修改。为了解开封印,小 H 想知道:通过以上修改操作,他可以得到多少种不同的非空序列。
认为两个序列
由于答案可能很大,你只需告诉小 H 答案对
输入格式
本题有多组测试数据。输入的第一行两个整数
对于每组测试数据,第一行两个整数
输出格式
对于每组测试数据输出一行一个整数,表示通过修改操作可以得到的非空序列个数,对
样例 1
input
0 4 3 2 1 2 1 4 3 3 1 2 1 5 4 1 3 2 3 4 7 5 4 4 5 2 3 3 1
output
4 7 20 59
explanation
该组样例共有 4 组测试数据。
- 对于第一组测试数据,可以通过修改得到的非空序列有
样例 2
input
0 2 11 10 8 8 8 9 9 8 8 9 9 9 8 12 2500 1529 1470 1361 1416 1492 1503 1641 1868 1829 1959 2052 2105
output
694 4961744
【样例 3】
见选手目录下的 seal/seal3.in
与 seal/seal3.ans
。
该组样例满足测试点 3 ~ 5 的限制。
【样例 4】
见选手目录下的 seal/seal4.in
与 seal/seal4.ans
。
该组样例满足测试点 10 的限制。
【样例 5】
见选手目录下的 seal/seal5.in
与 seal/seal5.ans
。
该组样例满足测试点 11 ~ 14 的限制。
【样例 6】
见选手目录下的 seal/seal6.in
与 seal/seal6.ans
。
该组样例满足测试点 15 的限制。
【样例 7】
见选手目录下的 seal/seal7.in
与 seal/seal7.ans
。
该组样例满足测试点 17 ~ 19 的限制。
【样例 8】
见选手目录下的 seal/seal8.in
与 seal/seal8.ans
。
该组样例满足测试点 22 ~ 25 的限制。
子任务
对于所有测试点,
, , , 。
测试点编号 | 特殊性质 | ||
---|---|---|---|
无 | |||
A | |||
AB | |||
A | |||
AB | |||
无 | |||
A | |||
AB | |||
无 | |||
A | |||
AB | |||
无 |
- 特殊性质 A:
。 - 特殊性质 B:
。
时间限制:4s
空间限制:512MB