CF1750A Indirect Sort

题目描述

给定一个长度为 $n$ 的排列 $a_1, a_2, \ldots, a_n$,其中每个整数 $1$ 到 $n$ 恰好出现一次。 你可以进行如下操作任意次(也可以不进行操作): - 选择任意三个下标 $i, j, k$($1 \le i < j < k \le n$)。 - 如果 $a_i > a_k$,则将 $a_i$ 替换为 $a_i + a_j$。否则,交换 $a_j$ 和 $a_k$ 的值。 请判断是否可以通过若干次操作将数组 $a$ 变为非递减有序。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 $t$($1 \le t \le 5000$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($3 \le n \le 10$),表示数组 $a$ 的长度。 第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n$($1 \le a_i \le n$,且当 $i \neq j$ 时 $a_i \neq a_j$),表示数组 $a$ 的元素。

输出格式

对于每个测试用例,如果可以将数组变为非递减有序,输出 "Yes"(不带引号);否则输出 "No"(不带引号)。 你可以以任意大小写输出 "Yes" 和 "No"(例如 "YES"、"yEs" 和 "yes" 都会被识别为肯定回答)。

说明/提示

在第一个测试用例中,$[1,2,3]$ 已经是非递减有序。 在第二个测试用例中,可以选择 $i = 1, j = 2, k = 3$。由于 $a_1 \le a_3$,交换 $a_2$ 和 $a_3$,数组变为 $[1,2,3]$,已经是非递减有序。 在第七个测试用例中,可以依次进行如下操作: - 选择 $i = 5, j = 6, k = 7$。由于 $a_5 \le a_7$,交换 $a_6$ 和 $a_7$,数组变为 $[1,2,6,7,4,5,3]$。 - 选择 $i = 5, j = 6, k = 7$。由于 $a_5 > a_7$,将 $a_5$ 替换为 $a_5 + a_6 = 9$,数组变为 $[1,2,6,7,9,5,3]$。 - 选择 $i = 2, j = 5, k = 7$。由于 $a_2 \le a_7$,交换 $a_5$ 和 $a_7$,数组变为 $[1,2,6,7,3,5,9]$。 - 选择 $i = 2, j = 4, k = 6$。由于 $a_2 \le a_6$,交换 $a_4$ 和 $a_6$,数组变为 $[1,2,6,5,3,7,9]$。 - 选择 $i = 1, j = 3, k = 5$。由于 $a_1 \le a_5$,交换 $a_3$ 和 $a_5$,数组变为 $[1,2,3,5,6,7,9]$,已经是非递减有序。 在第三、第四、第五和第六个测试用例中,可以证明无法将数组变为非递减有序。 由 ChatGPT 4.1 翻译