長さ の数列 の整列度は、 かつ を満たす組 の個数である。
次の操作をちょうど 回行う。 を満たす整数 を選び、 と を交換する。
すべての操作後に得られる整列度の最大値と、それを達成する操作列を つ出力せよ。最大値だけが正しい場合も、操作列が出力形式に従っている場合に限り部分点を得られる。
各テストケースには所属するサブタスクの配点が割り当てられる。最大値と操作列がともに正しい場合は 、最大値が正しく、形式に従う操作列がその値を達成しない場合は を得る。最大値が誤っているか、操作列が出力形式に従わない場合は となる。最大値だけの出力、操作数の誤り、範囲外の添字に対して は保証されない。サブタスクの得点は所属するテストケースの得点の最小値である。
入力は次の形式で与えられる。
最初の行に整列度の最大値を出力せよ。続く 行の各行に、 回目の操作で選んだ整数 を出力せよ (、)。最適な操作列が複数ある場合はどれを出力してもよい。
最初の行に と 、次の行に 個の整数 が空白区切りで与えられる。
| 3 | 36 | は の整列に必要な最小操作回数以下である。 |
| 4 | 20 | 追加の制約はない。 |