問題文
非負整数 が与えられる。
長さ の数列 を次のように定める。
相異なる 2 つの添字 を選び、 と をともに に置き換える操作を好きな回数行うことができる。
数列のすべての要素を等しくするために必要な操作回数の最小値を求め、その最小値を達成する操作列を 1 つ出力せよ。不可能なら を出力せよ。
可能な場合、与えられた制約のもとで、最小操作回数は常に 回以下であることが証明できる。
この問題には部分点がある。詳しくは Scoring セクションを参照せよ。
入力
入力は次の形式で標準入力から与えられる。
出力
不可能な場合、1 行に を出力せよ。
可能な場合、1 行目に最小操作回数 を出力せよ。続く 行のうち 行目に、 回目の操作で選ぶ 2 つの添字 を次の形式で出力せよ。
制約
- 。
- 。
サブタスク
Scoring
各テストケースの得点は、そのテストケースが属するサブタスクの配点に対する割合として、次のように計算される。
すべての要素を等しくすることが不可能な場合:
- を出力した場合、得点は である。
- それ以外の場合、得点は である。
すべての要素を等しくすることが可能な場合:
- を出力した場合、得点は である。
- 非負整数を出力して可能であることを正しく判定したが、その値が最小操作回数でない場合、得点は である。