#AGC038A. [AGC038A] 01 Matrix

[AGC038A] 01 Matrix

配点 : 300300

問題文

HHWW 列からなるマス目があります。 すぬけくんは、各マスに 00 または 11 を書き込みたいです。 その際、以下の条件を全て満たす必要があります。

  • どの行についても、その行に含まれる 00 の個数と、その行に含まれる 11 の個数のうち、小さい方が AA である。 (ここで、0,10,1 の個数が同じ場合、小さい方はどちらとしてもよい)。
  • どの列についても、その列に含まれる 00 の個数と、その列に含まれる 11 の個数のうち、小さい方が BB である。

これらの条件を満たすように各マスに 0,10,1 を書き込めるか判定し、 可能な場合は条件を満たす書き込み方を 11 つ示してください。

制約

  • 1H,W10001 \leq H,W \leq 1000
  • 0A0 \leq A
  • 2×AW2 \times A \leq W
  • 0B0 \leq B
  • 2×BH2 \times B \leq H
  • 入力される値はすべて整数である。

入力

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

HH WW AA BB

出力

条件を満たすように各マスに 0,10,1 を書き込むことが不可能な場合は No を出力せよ。

可能な場合は、条件を満たす書き込み方を 11 つ、以下の形式で出力せよ。

s11s12s1Ws_{11}s_{12}\cdots s_{1W}

s21s22s2Ws_{21}s_{22}\cdots s_{2W}

\vdots

sH1sH2sHWs_{H1}s_{H2}\cdots s_{HW}

ただしここで sijs_{ij} は、マス目の上から ii 行目、左から jj 番目のマスに書き込む数字である。

解が複数存在する場合、どれを出力しても正解と判定される。

3 3 1 1
100
010
001

どの行についても、その行に含まれる 0,10,1 の個数はそれぞれ 2,12,1 であり、条件を満たしています。 また、どの列についても、その列に含まれる 0,10,1 の個数はそれぞれ 2,12,1 であり、条件を満たしています。

1 5 2 0
01010