#HK4233. 「NordicOI 2024」Chair Game

「NordicOI 2024」Chair Game

题目描述

题目译自 NordicOI 2024 T2 「Anime Shops

考虑一个有 nn 名玩家和 nn 把椅子的游戏。椅子将被排列成一个圆圈,每个玩家将坐在一把椅子上。游戏中还会有一次铃声响起,次数不定。

每把椅子都有一个从 11nn 的整数,表示当铃声响起时,坐在椅子上的玩家必须顺时针移动的步数。如果铃声响起后每把椅子都正好有一个玩家,则椅子的排列是合法的。

你的任务是找到一个合法的椅子排列,或者判断没有这样的排列。

输入格式

第一行包含一个整数 tt,表示输入数据的组数。接下来每两行描述了一组输入数据。每组数据第一行包含一个整数 nn。第二行包含整数 s1,s2,,sns_1,s_2,\dots,s_n,表示椅子上的数字。

输出格式

对于每个测试用例,如果存在合法的椅子排列,则首先输出 YES,否则输出 NO。如果答案是 YES,还要输出一个可能的顺时针排列。如果有几个合法的排列,你可以输出其中的任何一个。

3
4
1 1 1 1
4
1 1 1 2
5
4 1 2 1 2
YES
1 1 1 1
NO
YES
2 4 1 1 2

数据范围与提示

对于所有输入数据,满足:

  • 1t10001 \le t \le 1000
  • 1n1001 \le n \le 100
  • 1sin1 \le s_i \le n (1in)(1\leq i\leq n)

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 88 1n81 \le n \le 8
22 55 sisjs_i \neq s_j (ij)(i \neq j)
33 44 1si21 \le s_i \le 2 (1in)(1\leq i\leq n)
44 77 1si31 \le s_i \le 3 (1in)(1\leq i\leq n)
55 1212 1si41 \le s_i \le 4 (1in)(1\leq i\leq n)
66 1515 1si51 \le s_i \le 5 (1in)(1\leq i\leq n)
77 2020 1n161 \le n \le 16
88 2929 无附加限制