luogu#P11592. [NordicOI 2024] Chair Game

[NordicOI 2024] Chair Game

题目背景

翻译自 NordicOI 2024 B

题目描述

在一个游戏中,有 nn 名玩家和 nn 把椅子。所有椅子排列成一个圆,每个玩家坐在一把椅子上。

在游戏中会有铃声响起。每把椅子上都有一个在 11nn 之间的整数 sis_i,表示当铃声响起时,坐在这把椅子上的玩家需要顺时针移动 sis_i 步。如果铃声响起后每把椅子上恰有一名玩家,则称这个椅子的排列是合法的。

给定所有椅子上的数,你需要判断是否可以将这些椅子重新排列使得其合法。如果可以,还需要给出一个方案。

输入格式

本题多测。第一行一个整数 tt 表示测试数据组数。

对于每组测试数据,第一行输入一个整数 nn,第二行输入 nn 个整数 s1,s2,,sns_1,s_2,\dots,s_n,表示椅子上的数。

输出格式

对于每组数据,第一行输出一个为 YESNO 的字符串,表示是否可以将这些椅子重新排列使得其合法。如果答案为 YES,第二行输出 nn 个数,表示一个合法的排列方案。如果有多个合法的方案,输出任意一个。

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

本题采用捆绑测试。

子任务 分值 特殊性质
11 88 1n81\le n\le8
22 55 对于所有 iji\ne jsisjs_i\ne s_j
33 44 1si21\le s_i\le 2
44 77 1si31\le s_i\le 3
55 1212 1si41\le s_i\le 4
66 1515 1si51\le s_i\le 5
77 2020 1n161\le n\le16
88 2929