题号:NC266952
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
小苯有一个长度为

的数组

,他可以对

进行
至多一次以下操作:
选择一段区间
![[l, r]](https://www.nowcoder.com/equation?tex=%5Bl%2C%20r%5D)
, 满足
)
,且区间长度
严格小于 
,将数组

的
![[l, r]](https://www.nowcoder.com/equation?tex=%5Bl%2C%20r%5D)
这段区间按非降序排序。
换句话说,操作执行完后,区间中的值将满足:
![a[l] \le a[l+1] \le a[l+2] \le...\le a[r]](https://www.nowcoder.com/equation?tex=a%5Bl%5D%20%5Cle%20a%5Bl%2B1%5D%20%5Cle%20a%5Bl%2B2%5D%20%5Cle...%5Cle%20a%5Br%5D)
。
现在小苯想知道能否通过执行
最多一次操作使得数组

按非降序排列。
输入描述:
本题有多组测试用例。
第一行一个正整数
表示测试用例的组数。
每组数据第一行一个正整数
,表示数组的长度。
每组数据第二行
个正整数
,表示数组
的元素。
输入保证所有测试用例中的
总和不超过
。
输出描述:
输出包含
行,表示每组用例的答案。
如果可以使
有序,输出 "YES",否则输出 "NO"(输出不含双引号)。
示例1
说明
第一个测试用例,选择排序
这个区间,数组变为
。因此输出YES。
第二个测试用例,无法选择合法的区间使得数组有序。
第三个测试用例,不需要选择区间,数组本身就有序。
备注:
数组按非降序排列:指数组每一项值都大于等于前一项值(如果前一项存在的话)。
形式化的:
对于任意
都有
。
特别的,我们认为长度恰好为
的数组也是非降序的。