#88. 「2023 新生杯」洗牌

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: woruo

题目描述

回归日常后,week 最爱做的事情就是打牌。

打牌之前要先洗牌,week 洗完牌后大家惊奇发现牌的点数从小到大排列,当然这并不是每次都会成功的。

一开始 week 张牌,分别为 , week 会进行任意次下列操作。

  • 选择一个下标 ,交换 两张牌的位置。
  • 当且仅当 成立时,week 洗牌成功,也就是牌的点数从小到大排列

在进行任意次操作后,week 能洗牌成功吗。

输入格式

第一行输入一个正整数 ,代表有 组数据 。

对于每组数据:

第一行输入一个正整数 , 代表一开始 week 手中的牌数。

第二行输入 个正整数 , 代表每张牌的点数。

输出格式

对于每组数据:

第一行输出 YESNO 代表 week 能不能洗牌成功。

如果 week 洗牌成功,输出一行 个整数,代表洗牌成功后的牌组。

样例

样例输入

3
6
3 6 2 3 4 1
7
3 6 1 2 4 1 3
7
1 2 3 4 5 6 7

样例输出

NO
YES
1 1 2 3 3 4 6
YES
1 2 3 4 5 6 7