5017: Jeffery_Li的特殊排序

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:0

题目描述

题目描述

$Jeffery\_Li$有$T$个数组,他要分别对这些数组进行排序。
其中第$i$个数组中有$n_i$个数。
$Jeffery\_Li$需要通过交换数字来使得数组变得有序,但是交换数字是有限制的:
如果要交换两个数字,$Jeffery\_Li$需要找到第三个数,使得它在数组里的位置到需要交换的两个数距离相同(详细见样例解释)。
$Jeffery\_Li$如果能将这组数从小到大排序完毕,输出YES,否则输出NO。

输入格式

第一行一个整数$T$。
接下来$T$组输入,每组第一行一个整数$n_i$,表示这个数组的大小。
接下来一行$n_i$个整数,表示这个数组的每个元素。

输出格式

每组数据输出一行一个字符串,如果能将数组从小到大排序完毕,则输出"YES",否则输出"NO"。

样例 #1

样例输入 #1 复制

6
2
16 29
3
1 16 29
5
1 30 35 4 4
6
28 30 16 1 15 2
9
999 20 2024 1314 15 520 666 888 38
11
2024 10 1 5 1 2 10 5 18 1000000007 10000000095

样例输出 #1 复制

YES
YES
YES
NO
YES
NO

提示

【样例解释】

对于样例中的第三组数字,$Jeffery\_Li$可以先交换$30$和$4$,它们的下标分别位$2$和$4$,其中$35$到它们的距离相同,都为$1$,所以$Jeffery\_Li$可以交换这两个数字。
数组变为:$1 \space 4 \space  35 \space  30 \space 4$
之后$Jeffery\_Li$可以交换$35$和$4$,使得数组变为:$1 \space 4 \space  4 \space  30 \space 35$。(如下图)


【数据范围】

对于所有数据:$1 \leq T \leq 20,1 \leq a_i \leq 10^{18}$,保证所有数组大小的和$\sum n_i$不超过$3 * 10^5$。
|测试点编号|特殊限制|
|$1 \sim 3$|$1 \leq n_i \leq 3$|
|$4 \sim 6$|$1 \leq n_i \leq 7$|
|$7 \sim 20$|$1 \leq n_i \leq 10^5$|

来源/分类