#arc127e. [arc127_e]Priority Queue
[arc127_e]Priority Queue
问题描述
给定一个包含 个整数的序列:,其中恰好包含 个 1 和 个 2。
Snuke 有一个初始为空的集合 。他将进行 次操作。第 次操作如下:
-
如果 :选择一个整数 ,满足 ,并将其添加到 中。这里, 不得是以前操作中选择的整数。
-
如果 :从 中删除最大值的元素。输入保证在此操作之前, 不为空。
有多少种可能是 的最终状态?将计数结果对 取模。
约束条件
- 在 个指标 上 。
- 在 个指标 上 。
- 在带有 的操作之前, 不为空。
- 输入中的所有值都是整数。
输入
输入以以下格式从标准输入给出:
输出
输出答案对 取模。
示例输入 1
3 1
1 1 2 1
示例输出 1
2
有两种可能的 的最终状态:。
例如,以下操作序列得到 。
- :向 中添加 。
- :向 中添加 。
- :从 中删除 。
- :向 中添加 。
示例输入 2
20 6
1 1 1 1 1 2 1 1 1 2 1 2 1 2 1 2 1 1 1 1 2 1 1 1 1 1
示例输出 2
5507