#P17290. [ONTAK 2014] 打砖块(Arkanoid)
[ONTAK 2014] 打砖块(Arkanoid)
题目描述
Bajtek 正在玩经典游戏 Arkanoid。屏幕上方有若干列大小相同的方块,每一列都紧贴屏幕上边缘。任意时刻,只能攻击所有列中最下方的方块。
一个局面可以用每一列中方块的数量来描述。某一时刻,Bajtek 注意到每一列的高度都互不相同。
他的表弟 Bitek 会进行恰好 次操作。每次操作,他选择一个连续的列区间 ,Bajtek 随后把这个区间内所有列的高度都降低到该区间中的最小高度。也就是说,若操作前高度为 ,则区间 中所有 都会变为 。
Bajtek 想知道:恰好执行 次这样的操作后,一共可能得到多少种不同的局面?如果两个局面至少有一列高度不同,则认为它们不同。
输入格式
第一行包含两个整数 ,分别表示列数和操作次数:
- ;
- 。
第二行包含 个两两不同的非负整数 ,满足 。
部分测试中还有以下限制:
- 的数据满足 ;
- 另有 的数据满足 且 ;
- 合计 的数据满足 。
输出格式
输出一个整数,表示执行恰好 次操作后可能得到的不同局面数,对 取模。
样例输入
3 2
3 0 2
样例输出
4
样例说明
初始局面为 。一次操作后可能得到 、、 或 。继续再做一次操作不会产生新的局面。