Скоро состоится шахматный турнир, в котором примут участие $$$n$$$ шахматистов. Каждый шахматист сыграет одну партию против каждого другого участника. Партия заканчивается либо победой одного игрока и поражением другого, либо ничьей для обоих игроков.
У каждого из шахматиста есть свои ожидания по поводу турнира, они могут быть одного из двух типов:
Вам предстоит определить результаты всех матчей, чтобы все шахматисты сыграли в соответствии со своими ожиданиями, или сообщить, что это невозможно. Если правильных ответов несколько, выведите любой из них.
Вам предстоит определить, существует ли такой исход всех матчей, чтобы ожидания всех игроков были удовлетворены. Если существует несколько возможных исходов, выведите любой из них. Если таковых нет, сообщите, что это невозможно.
Первая строка содержит одно целое число $$$t$$$ ($$$1 \le t \le 200$$$) — количество наборов входных данных.
Первая строка каждого набора содержит одно целое число $$$n$$$ ($$$2 \le n \le 50$$$) — количество шахматистов.
Вторая строка содержит строку $$$s$$$ ($$$|s| = n$$$; $$$s_i \in \{1, 2\}$$$). Если $$$s_i = 1$$$, то у $$$i$$$-го шахматиста ожидания первого типа, иначе второго.
Для каждого набора входных данных выведите ответ в следующем формате:
В первой строке выведите NO, если удовлетворить ожидания всех шахматистов невозможно.
В противном случае выведите YES, а в последующих $$$n$$$ строках элементы матрицы размером $$$n \times n$$$.
Элемент матрицы в $$$i$$$-й строке и $$$j$$$-м столбце должен быть равен:
3 3 111 2 21 4 2122
YES X== =X= ==X NO YES X--+ +X++ +-X- --+X
Название |
---|