给定一个长度为 $n$ 的整数数组 $A = [a_1, a_2, \dots, a_n]$,你需要判断是否存在一个整数数组 $B = [b_1, b_2, \dots, b_n]$ 满足以下条件:
- 数组 $B$ 是 $A$ 的一个重排,即存在一个大小为 $n$ 的排列 $p = [p_1, p_2, \dots, p_n]$,使得对于每个 $1 \le i \le n$,都有 $b_i = a_{p_i}$。
- 数组 $B$ 不包含任何长度至少为 3 的等差子序列。
序列 $C = [c_1, c_2, \dots, c_k]$ 被称为 $B$ 的等差子序列,当且仅当满足以下条件:
- 存在一个下标序列 $1 \le i_1 < i_2 < \dots < i_k \le n$,使得对于每个 $1 \le j \le k$,都有 $c_j = b_{i_j}$。
- $C$ 构成一个等差数列,即对于每个 $1 \le i \le k - 2$,都有 $c_{i+2} - c_{i+1} = c_{i+1} - c_i$。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 25$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$ ($1 \le n \le 5000$),表示数组 $A$ 的大小。 下一行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$ ($1 \le a_i \le 10^9$),表示数组 $A$ 的元素。
输出格式
对于每个测试用例,如果不存在这样的数组 $B$,则输出一行 “NO”(不含引号)。否则,输出一行 “YES”(不含引号),并在下一行输出一个合法的数组 $B$。如果存在多个满足要求的数组 $B$,输出其中任意一个均视为正确。
样例
输入 1
2 4 3 6 8 9 5 1 1 1 1 1
输出 1
YES 8 6 9 3 NO