atcoder#AGC016C. [AGC016C] +/- Rectangle

[AGC016C] +/- Rectangle

配点 : 700700

問題文

整数 HH, WW, hh, ww (1hH1 \leq h \leq H, 1wW1 \leq w \leq W) が与えられます。 次の条件がすべて成り立つような行列が存在するか判定し、存在するならばひとつ構成してください。

  • 行列は HHWW 列である。
  • 行列の各要素は 109-10^9 以上 10910^9 以下の整数である。
  • 行列の全要素の総和は正の値である。
  • どこから hhww 列の部分長方形を取り出しても、部分長方形に含まれる全要素の総和は負の値である。

制約

  • 1hH5001 \leq h \leq H \leq 500
  • 1wW5001 \leq w \leq W \leq 500

入力

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

HH WW hh ww

出力

条件がすべて成り立つような行列が存在しないならば、No を出力せよ。

存在するならば、11 行目に Yes を出力し、22 行目以降に行列をひとつ出力せよ。 行列は以下の形式で出力せよ。 ただし、aija_{ij} は行列の (i, j)(i,\ j) 要素を表す。

a11a_{11} ...... a1Wa_{1W}

::

aH1a_{H1} ...... aHWa_{HW}

3 3 2 2
Yes
1 1 1
1 -4 1
1 1 1

行列の全要素の総和は 44 であり、正の値です。 また、部分長方形を取り出す方法は次図の 44 通りですが、どの場合も、部分長方形に含まれる全要素の総和は 1-1 であり、負の値です。

bbdb651fa1f05996886da9f0c4d8090a.png

2 4 1 2
No
3 4 2 3
Yes
2 -5 8 7
3 -5 -4 -5
2 1 -1 7