atcoder#ARC127E. [ARC127E] Priority Queue
[ARC127E] Priority Queue
配点 : 点
問題文
長さ の整数列 が与えられます. はちょうど 個の とちょうど 個の を含みます.
すぬけくんは集合 を持っており,最初 は空です. 彼は今から, 回の操作を行います. 回目の操作は以下のような行動です.
- の時: を満たす整数 を選び, に追加する. ただし,今までの操作で選んだことのある整数は として選べない.
- の時: の中で最大値となる要素を削除する. なお,この操作の直前に が空でないことは入力から保証される.
最終的な としてありうる集合は何通りあるでしょうか? 答えを で割った余りを求めてください.
制約
- を満たす がちょうど 個存在する.
- を満たす がちょうど 個存在する.
- の操作を行う直前で は空ではない.
- 入力される値はすべて整数である.
入力
入力は以下の形式で標準入力から与えられる.
出力
答えを で割った余りを出力せよ.
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