M - Mahjong 2
Editorial
/


Time Limit: 2 sec / Memory Limit: 1024 MiB
配点 : 100 点
問題文
1 から N までの整数が書かれたカードが合計で 3M-1 枚あり、各 1 \leq i \leq N について整数 i の書かれたカードは A_i 枚存在します。
あなたは1 から N までの整数 K を 1 つ選び、整数 K の書かれたカードを追加して以下の条件を満たそうとしています。
- 条件 : 同じ数字の書かれた 3 枚のカード、または連続した数字の書かれた 3 枚のカードを選び取り除くことを M 回繰り返して、持っているカードを空にすることが出来る。
条件を満たすことのできる K を全て列挙してください。
制約
- 入力は全て整数
- 1 \le N \le 5 \times 10^5
- 1 \le M \le 10^8
- 0 \leq A_i \leq 3M-1
- \sum A_i=3M-1
部分点
以下の制約を満たすデータセットに正解した場合は 1 点が与えられる。
- N \le 2000
入力
入力は以下の形式で標準入力から与えられる。
N M A_1 A_2 \ldots A_N
出力
最初の行には条件を満たす K の個数 L を出力せよ。その後、条件を満たす K を昇順で出力せよ。
L K_1 K_2 \ldots K_L
入力例 1
5 4 0 4 2 2 3
出力例 1
2 2 5
例えば K=5 を追加したとき、\lbrace 2,2,2\rbrace,\lbrace 2,3,4\rbrace,\lbrace 3,4,5\rbrace,\lbrace 5,5,5\rbrace のように 4 つの組を作ることができます。
入力例 2
4 1 1 0 0 1
出力例 2
0
条件を満たす K が存在しないこともあります。
入力例 3
8 15 7 10 4 2 8 6 3 4
出力例 3
3 1 4 7