CF1750A.Indirect Sort

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Indirect Sort

题目描述

给定一个长度为 nn 的排列 a1,a2,,ana_1, a_2, \ldots, a_n,其中每个整数 11nn 恰好出现一次。

你可以进行如下操作任意次(也可以不进行操作):

  • 选择任意三个下标 i,j,ki, j, k1i<j<kn1 \le i < j < k \le n)。
  • 如果 ai>aka_i > a_k,则将 aia_i 替换为 ai+aja_i + a_j。否则,交换 aja_jaka_k 的值。

请判断是否可以通过若干次操作将数组 aa 变为非递减有序。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t50001 \le t \le 5000),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn3n103 \le n \le 10),表示数组 aa 的长度。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n1ain1 \le a_i \le n,且当 iji \neq jaiaja_i \neq a_j),表示数组 aa 的元素。

输出格式

对于每个测试用例,如果可以将数组变为非递减有序,输出 "Yes"(不带引号);否则输出 "No"(不带引号)。

你可以以任意大小写输出 "Yes" 和 "No"(例如 "YES"、"yEs" 和 "yes" 都会被识别为肯定回答)。

说明/提示

在第一个测试用例中,[1,2,3][1,2,3] 已经是非递减有序。

在第二个测试用例中,可以选择 i=1,j=2,k=3i = 1, j = 2, k = 3。由于 a1a3a_1 \le a_3,交换 a2a_2a3a_3,数组变为 [1,2,3][1,2,3],已经是非递减有序。

在第七个测试用例中,可以依次进行如下操作:

  • 选择 i=5,j=6,k=7i = 5, j = 6, k = 7。由于 a5a7a_5 \le a_7,交换 a6a_6a7a_7,数组变为 [1,2,6,7,4,5,3][1,2,6,7,4,5,3]
  • 选择 i=5,j=6,k=7i = 5, j = 6, k = 7。由于 a5>a7a_5 > a_7,将 a5a_5 替换为 a5+a6=9a_5 + a_6 = 9,数组变为 [1,2,6,7,9,5,3][1,2,6,7,9,5,3]
  • 选择 i=2,j=5,k=7i = 2, j = 5, k = 7。由于 a2a7a_2 \le a_7,交换 a5a_5a7a_7,数组变为 [1,2,6,7,3,5,9][1,2,6,7,3,5,9]
  • 选择 i=2,j=4,k=6i = 2, j = 4, k = 6。由于 a2a6a_2 \le a_6,交换 a4a_4a6a_6,数组变为 [1,2,6,5,3,7,9][1,2,6,5,3,7,9]
  • 选择 i=1,j=3,k=5i = 1, j = 3, k = 5。由于 a1a5a_1 \le a_5,交换 a3a_3a5a_5,数组变为 [1,2,3,5,6,7,9][1,2,3,5,6,7,9],已经是非递减有序。

在第三、第四、第五和第六个测试用例中,可以证明无法将数组变为非递减有序。

由 ChatGPT 4.1 翻译

样例

7
3
1 2 3
3
1 3 2
7
5 3 4 7 6 2 1
7
7 6 5 4 3 2 1
5
2 1 4 5 3
5
2 1 3 4 5
7
1 2 6 7 4 3 5
Yes
Yes
No
No
No
No
Yes

在线编程 IDE

建议全屏模式获得最佳体验