CF1569B Chess Tournament
题目描述
### 题意翻译
$n$ 个人进行比赛,每场比赛的结果只有输,赢,平局三种情况。
每个玩家对于比赛都有自己的期望,有以下两种类型:
1. 玩家不想输掉任何一场比赛;
2. 玩家想要赢得至少一场比赛。
判断是否存在所有比赛的结果,使得所有玩家都满足他们的期望。 如果有多种可能的结果,输出任意一种即可。 如果没有,输出 No。
输入格式
多组数据。
一个行一个整数 $T$,代表数据组数。
对于每组数据,第一行一个整数 $n$,代表选手的数量。
第二行一个字符串 $s$,长度为 $n$,由 1,2 构成,分别表示当前玩家期望第一种结果,当前玩家期望第二种结果。
输出格式
对于每组数据,如果不存在合法方案,输出 `No`。
否则,输出 `Yes`。并在下一行输出一个 $n\times n$ 的矩阵。
矩阵的第 $i$ 行第 $j$ 列表示 $i,j$ 选手比赛的结果,如果 $i$ 胜利,输出 `+` ,如果 $j$ 胜利,输出 `-`,如果平局,输出 `=`。
当 $i=j$ 时,输出 `X`。
说明/提示
$1\le t \le 200,2\le n \le50$。
译者:@smyslenny