#ATagc038a. [AGC038A] 01 Matrix

[AGC038A] 01 Matrix

题目描述

有一个由 HHWW 列组成的网格。すぬけくん想在每个格子中填写 0011。填写时,必须满足以下所有条件:

  • 对于任意一行,该行中 00 的个数与 11 的个数中较小的那个等于 AA。(如果 0011 的个数相同,较小的可以任选其一。)
  • 对于任意一列,该列中 00 的个数与 11 的个数中较小的那个等于 BB

请判断是否可以按照这些条件在每个格子中填写 0011。如果可以,请给出一种满足条件的填写方案。

输入格式

输入通过标准输入给出,格式如下:

HH WW AA BB

输出格式

如果无法满足条件,请输出 No

如果可以满足条件,请输出一种满足条件的填写方案,格式如下:

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 列格子中填写的数字。

如果存在多种解法,输出任意一种都视为正确。

样例 1

输入

3 3 1 1

输出

100
010
001

样例 2

输入

1 5 2 0

输出

01010

说明/提示

限制条件

  • 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
  • 输入的所有数值均为整数。

样例解释 1

对于每一行,该行中 0011 的个数分别为 2211,满足条件。同时,对于每一列,该列中 0011 的个数分别为 2211,也满足条件。

由 ChatGPT 4.1 翻译