308743: CF1569B. Chess Tournament

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

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

题目描述

A chess tournament will be held soon, where $ n $ chess players will take part. Every participant will play one game against every other participant. Each game ends in either a win for one player and a loss for another player, or a draw for both players. Each of the players has their own expectations about the tournament, they can be one of two types: 1. a player wants not to lose any game (i. e. finish the tournament with zero losses); 2. a player wants to win at least one game. You have to determine if there exists an outcome for all the matches such that all the players meet their expectations. If there are several possible outcomes, print any of them. If there are none, report that it's impossible.

输入输出格式

输入格式


The first line contains a single integer $ t $ ( $ 1 \le t \le 200 $ ) — the number of test cases. The first line of each test case contains one integer $ n $ ( $ 2 \le n \le 50 $ ) — the number of chess players. The second line contains the string $ s $ ( $ |s| = n $ ; $ s_i \in \{1, 2\} $ ). If $ s_i = 1 $ , then the $ i $ -th player has expectations of the first type, otherwise of the second type.

输出格式


For each test case, print the answer in the following format: In the first line, print NO if it is impossible to meet the expectations of all players. Otherwise, print YES, and the matrix of size $ n \times n $ in the next $ n $ lines. The matrix element in the $ i $ -th row and $ j $ -th column should be equal to: - +, if the $ i $ -th player won in a game against the $ j $ -th player; - -, if the $ i $ -th player lost in a game against the $ j $ -th player; - =, if the $ i $ -th and $ j $ -th players' game resulted in a draw; - X, if $ i = j $ .

输入输出样例

输入样例 #1

3
3
111
2
21
4
2122

输出样例 #1

YES
X==
=X=
==X
NO
YES
X--+
+X++
+-X-
--+X

Input

题意翻译

### 题意翻译 $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

加入题单

算法标签: