QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 512 MB 満点: 100

#10254. 椅子游戏

統計

考虑一个有 $n$ 名玩家和 $n$ 把椅子的游戏。椅子围成一个圆圈摆放,每名玩家坐在其中一把椅子上。游戏中还有一个铃铛,会响若干次。

每把椅子上都有一个 $1$ 到 $n$ 之间的整数:表示坐在该椅子上的玩家在铃铛响时必须顺时针移动的步数。如果铃铛响后每把椅子上恰好有一名玩家,则称该椅子排列是合法的。

你的任务是找到一种合法的椅子排列,或者指出不存在这样的排列。

输入格式

第一行包含一个整数 $t$:测试用例的数量。

此后,每个测试用例包含两行。第一行包含一个整数 $n$。第二行包含整数 $s_1, s_2, \dots, s_n$:椅子上的数字。

输出格式

对于每个测试用例,如果存在合法的椅子排列,首先输出 YES,否则输出 NO。如果答案为 YES,则顺时针输出一种可能的排列。如果存在多种合法的排列,输出其中任意一种即可。

数据范围

  • $1 \le t \le 1000$
  • $1 \le n \le 100$
  • $1 \le s_i \le n$ 对于 $i=1, 2, \dots, n$

样例

输入 1

3
4
1 1 1 1
4
1 1 1 2
5
4 1 2 1 2

输出 1

YES
1 1 1 1
NO
YES
2 4 1 1 2

子任务

子任务 1 (8 分)

  • $1 \le n \le 8$

子任务 2 (5 分)

  • 若 $i \neq j$,则 $s_i \neq s_j$(即每个值各不相同)

子任务 3 (4 分)

  • $1 \le s_i \le 2$ 对于 $i=1, 2, \dots, n$

子任务 4 (7 分)

  • $1 \le s_i \le 3$ 对于 $i=1, 2, \dots, n$

子任务 5 (12 分)

  • $1 \le s_i \le 4$ 对于 $i=1, 2, \dots, n$

子任务 6 (15 分)

  • $1 \le s_i \le 5$ 对于 $i=1, 2, \dots, n$

子任务 7 (20 分)

  • $1 \le n \le 16$

子任务 8 (29 分)

  • 无附加限制。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.