AT_agc038_a [AGC038A] 01 Matrix

题目描述

有一个由 $H$ 行 $W$ 列组成的网格。すぬけくん想在每个格子中填写 $0$ 或 $1$。填写时,必须满足以下所有条件: - 对于任意一行,该行中 $0$ 的个数与 $1$ 的个数中较小的那个等于 $A$。(如果 $0$ 和 $1$ 的个数相同,较小的可以任选其一。) - 对于任意一列,该列中 $0$ 的个数与 $1$ 的个数中较小的那个等于 $B$。 请判断是否可以按照这些条件在每个格子中填写 $0$ 或 $1$。如果可以,请给出一种满足条件的填写方案。

输入格式

输入通过标准输入给出,格式如下: > $H$ $W$ $A$ $B$

输出格式

如果无法满足条件,请输出 `No`。 如果可以满足条件,请输出一种满足条件的填写方案,格式如下: > $s_{11}s_{12}\cdots s_{1W}$ > $s_{21}s_{22}\cdots s_{2W}$ > $\vdots$ > $s_{H1}s_{H2}\cdots s_{HW}$ 其中 $s_{ij}$ 表示第 $i$ 行第 $j$ 列格子中填写的数字。 如果存在多种解法,输出任意一种都视为正确。

说明/提示

## 限制条件 - $1 \leq H, W \leq 1000$ - $0 \leq A$ - $2 \times A \leq W$ - $0 \leq B$ - $2 \times B \leq H$ - 输入的所有数值均为整数。 ## 样例解释 1 对于每一行,该行中 $0$ 和 $1$ 的个数分别为 $2$ 和 $1$,满足条件。同时,对于每一列,该列中 $0$ 和 $1$ 的个数分别为 $2$ 和 $1$,也满足条件。 由 ChatGPT 4.1 翻译