Олимпиадный тренинг

Задача . B. Шахматный турнир


Задача

Темы: Конструктив *1000

Скоро состоится шахматный турнир, в котором примут участие \(n\) шахматистов. Каждый шахматист сыграет одну партию против каждого другого участника. Партия заканчивается либо победой одного игрока и поражением другого, либо ничьей для обоих игроков.

У каждого из шахматиста есть свои ожидания по поводу турнира, они могут быть одного из двух типов:

  1. шахматист хочет не проиграть ни одной партии (то есть закончить турнир без поражений);
  2. шахматист хочет выиграть хотя бы одну партию.

Вам предстоит определить результаты всех матчей, чтобы все шахматисты сыграли в соответствии со своими ожиданиями, или сообщить, что это невозможно. Если правильных ответов несколько, выведите любой из них.

Вам предстоит определить, существует ли такой исход всех матчей, чтобы ожидания всех игроков были удовлетворены. Если существует несколько возможных исходов, выведите любой из них. Если таковых нет, сообщите, что это невозможно.

Входные данные

Первая строка содержит одно целое число \(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\)-м столбце должен быть равен:

  • +, если \(i\)-й шахматист выиграл в партии с \(j\)-м шахматистом;
  • -, если \(i\)-й шахматист проиграл в партии с \(j\)-м шахматистом;
  • =, если \(i\)-й и \(j\)-й шахматисты сыграли в ничью;
  • X, если \(i = j\).

Примеры
Входные данныеВыходные данные
1 3
3
111
2
21
4
2122
YES
X==
=X=
==X
NO
YES
X--+
+X++
+-X-
--+X

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя