N - Nonsymmetric Matrix Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 100

問題文

各成分が整数である NN 列の行列 A = (A_{i, j}) であって以下の条件を満たすものが存在するか判定し、存在する場合は \max |A_{i, j}| が最小になるものを 1 つ出力してください。

  • 各行の数の和が 0、すなわち任意の 1 \leq i \leq N に対して \sum_{j = 1}^{N} A_{i, j} = 0
  • 各列の数の和が 0、すなわち任意の 1 \leq j \leq N に対して \sum_{i = 1}^{N} A_{i, j} = 0
  • i \neq j のとき A_{i, j} \neq A_{j, i}

制約

  • N1 以上 1000 以下の整数

入力

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

N

出力

条件を満たす行列が存在しない場合、No を出力せよ。

条件を満たす行列が存在する場合、N + 1 行出力せよ。1 行目には Yes を出力し、2 行目以降には条件を満たす行列のうち \max |A_{i, j}| が最小になるものを以下の形式で 1 つ出力せよ。

A_{1, 1} A_{1, 2} \ldots A_{1, N}
A_{2, 1} A_{2, 2} \ldots A_{2, N}
\vdots
A_{N, 1} A_{N, 2} \ldots A_{N, N}

入力例 1

3

出力例 1

Yes
1 -1 0 
0 1 -1 
-1 0 1 

A = ((1, -1, 0), (0, 1, -1), (-1, 0, 1)) は条件を満たす行列の 1 つです。