#P11592. [NordicOI 2024] Chair Game

    ID: 12871 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>2024Special JudgeNordicOI(北欧)

[NordicOI 2024] Chair Game

背景

翻译自 NordicOI 2024 B。

题目描述

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

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

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

输入格式

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

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

输出格式

对于每组数据,第一行输出一个为 YES 或 NO 的字符串,表示是否可以将这些椅子重新排列使得其合法。如果答案为 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

提示

对于所有数据:

  • 1≤t≤10001 \le t \le 1000
  • 1≤n≤1001 \le n \le 100
  • 1≤si≤n1 \le s_i \le n

本题采用捆绑测试。

子任务 分值 特殊性质
11 88 1≤n≤81\le n\le8
22 55 对于所有 i≠ji\ne j,si≠sjs_i\ne s_j
33 44 1≤si≤21\le s_i\le 2
44 77 1≤si≤31\le s_i\le 3
55 1212 1≤si≤41\le s_i\le 4
66 1515 1≤si≤51\le s_i\le 5
77 2020 1≤n≤161\le n\le16
88 2929 无