CF1569B.Chess Tournament

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Chess Tournament

题目描述

题意翻译

nn 个人进行比赛,每场比赛的结果只有输,赢,平局三种情况。

每个玩家对于比赛都有自己的期望,有以下两种类型:

  1. 玩家不想输掉任何一场比赛;

  2. 玩家想要赢得至少一场比赛。

判断是否存在所有比赛的结果,使得所有玩家都满足他们的期望。 如果有多种可能的结果,输出任意一种即可。 如果没有,输出 No。

输入格式

多组数据。

一个行一个整数 TT,代表数据组数。

对于每组数据,第一行一个整数 nn,代表选手的数量。

第二行一个字符串 ss,长度为 nn,由 1,2 构成,分别表示当前玩家期望第一种结果,当前玩家期望第二种结果。

输出格式

对于每组数据,如果不存在合法方案,输出 No

否则,输出 Yes。并在下一行输出一个 n×nn\times n 的矩阵。

矩阵的第 ii 行第 jj 列表示 i,ji,j 选手比赛的结果,如果 ii 胜利,输出 + ,如果 jj 胜利,输出 -,如果平局,输出 =。 当 i=ji=j 时,输出 X

说明/提示

1t200,2n501\le t \le 200,2\le n \le50

译者:@smyslenny

样例

3
3
111
2
21
4
2122
YES
X==
=X=
==X
NO
YES
X--+
+X++
+-X-
--+X

在线编程 IDE

建议全屏模式获得最佳体验