#S0016. 分段整理(segments)
分段整理(segments)
题目描述
传送带上依次摆放着 个货箱,编号为 ,每个编号恰好出现一次。用 表示第 个位置上的货箱编号,序列 因而是一个排列。
管理员准备进行一次分段整理:先在原序列中选出若干个长度至少为 、互不重叠的连续区间,再将每个区间内的货箱按编号从小到大排列。区间外的货箱保持原位。选出的区间可以紧挨着,也可以一个区间都不选。
请你求出,整理结束后可能得到多少种不同的编号序列。若两种区间选择得到的最终序列完全相同,只计为一种。答案对 取模。
输入格式
第一行包含一个整数 ,表示货箱的数量。
第二行包含 个整数 ,依次表示各个位置上的货箱编号。
输出格式
输出一行,包含一个整数,表示不同最终序列的数量对 取模后的结果。
样例输入 1
5
2 1 4 3 5
样例输出 1
4
样例 1 解释
可能得到的序列共有 种,分别为 、、 和 。
样例输入 2
4
1 2 3 4
样例输出 2
1
样例 2 解释
原序列已经按编号从小到大排列。无论选择哪些区间,整理后的序列都是 ,因此答案为 。
数据范围与子任务
对于所有测试数据,保证, 是 到 的排列。
每个子任务内的正式测试全部通过,才获得该子任务的分数。
| 子任务编号 | 分值 | 额外限制 |
|---|---|---|
| 1 | 20 | |
| 2 | ||
| 3 | ||
| 4 | 40 | 无额外限制 |