atcoder#ARC159C. [ARC159C] Permutation Addition

[ARC159C] Permutation Addition

配点 : 500500

問題文

正整数列 A=(a1,,aN)A=(a_1,\ldots,a_N) が与えられます。

次の操作を 00 回以上 10410^4 回以下繰り返すことで AA の値をすべて等しくできるかを判定し、可能な場合は操作列の一例を示してください。

  • (1,,N)(1,\ldots,N) の順列 (p1,,pN)(p_1,\ldots,p_N) を決め、AA(a1+p1,,aN+pN)(a_1+p_1,\ldots,a_N+p_N) に置き換える。

制約

  • 2N502 \leq N \leq 50
  • 1ai501 \leq a_i \leq 50
  • 入力はすべて整数

入力

入力は以下の形式で標準入力から与えられる。

NN

a1a_1 \ldots aNa_N

出力

AA の値をすべて等しくできない場合は No と出力せよ。 等しくできる場合、操作回数を MM 回、ii 回目の操作における順列を (pi,1,,pi,N)(p_{i,1},\ldots,p_{i,N}) として以下の形式で出力せよ。

Yes

MM

p1,1p_{1,1} \ldots p1,Np_{1,N}

\vdots

pM,1p_{M,1} \ldots pM,Np_{M,N}

答えが複数存在する場合はどれを出力しても正解とみなされる。

2
15 9
Yes
8
1 2
1 2
1 2
1 2
2 1
1 2
1 2
1 2

この出力例の通りに 88 回の操作を行うことで AA(24,24)(24,24) となり、値がすべて等しくなります。

5
1 2 3 10 10
No
4
1 1 1 1
Yes
0

初めから AA の値がすべて等しいです。