atcoder#ARC127E. [ARC127E] Priority Queue
[ARC127E] Priority Queue
题目描述
長さ の整数列 が与えられます. はちょうど 個の とちょうど 個の を含みます.
すぬけくんは集合 を持っており,最初 は空です. 彼は今から, 回の操作を行います. 回目の操作は以下のような行動です.
- の時: を満たす整数 を選び, に追加する. ただし,今までの操作で選んだことのある整数は として選べない.
- の時: の中で最大値となる要素を削除する. なお,この操作の直前に が空でないことは入力から保証される.
最終的な としてありうる集合は何通りあるでしょうか? 答えを で割った余りを求めてください.
输入格式
入力は以下の形式で標準入力から与えられる.
输出格式
答えを で割った余りを出力せよ.
题目大意
给定一个长度为 的序列 ,并且刚好有 个 1, 个 2。
有一个集合 ,初始是空的,将会做 次操作,第 次操作如下:
- ,选择一个数 ,并把这个数加入到集合中,这里 必须是之前没有选择过的数
- ,将集合中最大的数删掉
问最后 能有几种状态。
3 1
1 1 2 1
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
5507
提示
制約
- を満たす がちょうど 個存在する.
- を満たす がちょうど 個存在する.
- の操作を行う直前で は空ではない.
- 入力される値はすべて整数である.
Sample Explanation 1
最終的な としてありうる状態は, の 通りです. 例えば,以下のように操作すると,最終的に となります. - : に を追加する. - : に を追加する. - : から を削除する. - : に を追加する.