仿佛看到了流星飞上天空
比赛已经结束。新提交将被视为补题提交,不计入比赛成绩。
题目描述
云浅最近学习了「单调栈」。对于一个排列 ,我们可以这样求出其「单调栈」:
- 维护一个栈 ,初始为空。
 - 依次考虑每个 :
 - 若当前 非空且 栈顶的值大于 ,则将栈顶弹出;重复此过程直到 为空或 的栈顶元素小于 。
 - 最后将 压入栈。
 
现在 Yoimiya 有一个排列 ,云浅用排列 执行了上述过程。不幸的是,云浅不小心弄丢了排列 ,好在对于某些位置 ,云浅记录下了 表示在依次将 插入到栈中时,单调栈中的元素个数。
Yoimiya 想让你算出,有多少个排列 符合云浅记录下来的这些条件。答案对 取模。
输入格式
第一行一个正整数 表示排列的长度。
第二行 个整数 ,对于每个 :
- 若 ,代表将 依次插入栈中后,单调栈的大小为 。
 - 若 ,则代表云浅没有记录这个位置的单调栈大小。
 
输出格式
输出一行一个非负整数表示答案。
样例 输入
3
1 -1 2
样例 输出
3
样例 解释
有三种符合条件的排列:。
以 为例,其每个前缀的单调栈分别为 ,大小分别为 。
样例 输入
5
1 2 -1 2 1
样例 输出
5
样例 输入
6
1 2 -1 2 -1 4
样例 输出
22
样例 输入
9
1 -1 2 -1 3 3 -1 4 -1
样例 输出
3870
子任务约束
对于所有数据,。
| 子任务编号 | 特殊性质 | 分值 | 依赖子任务 | |
|---|---|---|---|---|
| Subtask #1 | 无 | 无 | ||
| Subtask #2 | ||||
| Subtask #3 | 无 | |||
| Subtask #4 | 无 | |||
| Subtask #5 | ||||
| Subtask #6 | 无 | |||
| Subtask #7 | 
[YDRS#004] 云斗 OI 年终挑战赛
- 状态
 - 已结束 (已参加)
 - 规则
 - IOI
 - 题目
 - 6
 - 开始于
 - 2023-12-30 21:39
 - 结束于
 - 2023-12-30 22:00
 - 持续时间
 - 14 小时
 - 主持人
 - 参赛人数
 - 285
 
      
京公网安备 11011102002149号