CF1360G A/B Matrix

题目描述

你有四个正整数$n$, $m$, $a$, $b$ $(1\leq b\leq n\leq 50;1\leq a\leq m\leq 50)$。请你构造任意一个满足下列条件的$n$行$m$列的矩阵: - 矩阵中的每一行都包含正好$a$个$1$; - 矩阵中的每一列都包含正好$b$个$1$; - 矩阵中剩下的位置全是$0$。 如果矩阵不存在,则表示其不存在即可。 比如说,对于$n=3,m=6,a=2,b=1$的一组数据,可以构造出以下的满足条件的矩阵: $$ \begin{vmatrix} 0 & 1 & 0 & 0 & 0 & 1 \\ 1 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 1 & 0 \end{vmatrix} $$

输入格式

本题输入包含多组数据。 第一行包含一个整数$t$ $(1\leq t\leq 1000)$,表示数据的组数。 接下来有$t$行输入,每行输入都包含四个正整数:$n$, $m$, $a$, $b$ $(1\leq b\leq n\leq 50;1\leq a\leq m\leq 50)$。其中,$n,m$为矩阵的行数和列数、$a,b$为矩阵中每行包含的$1$的个数和每列包含的$1$的个数。

输出格式

对于每组数据,有如下输出: - 如果可以构造出满足条件的矩阵,输出`YES`后输出构造出来的矩阵。 - 如果构造不出,则直接输出`NO`。