峰值交换(Jagged)
题目描述
乐柠兔得到一个长度为 n 的排列 a。
一次操作可以选择一个下标 i,满足 2≤i≤n−1,并且:
ai−1<ai且ai>ai+1
然后交换 ai 和 ai+1。
请判断,经过有限次操作后,是否可以把这个排列变成升序排列 1,2,…,n。
排列指的是由 1 到 n 这 n 个整数各出现一次组成的序列。
输入格式
第一行输入一个整数 T,表示测试数据组数。
对于每组测试数据:
第一行输入一个整数 n。
第二行输入 n 个整数 a1,a2,…,an,表示一个排列。
输出格式
对于每组测试数据,输出一行。
如果可以把排列变成升序排列,输出 YES;否则输出 NO。
样例
样例输入 #1
6
3
1 2 3
5
1 3 2 5 4
5
5 4 3 2 1
3
3 1 2
4
2 3 1 4
5
5 1 2 3 4
样例输出 #1
YES
YES
NO
NO
NO
NO
样例解析
第一组数据中,排列已经是升序排列,所以输出 YES。
第二组数据中,可以先交换 3 和 2,得到 [1,2,3,5,4],再交换 5 和 4,得到 [1,2,3,4,5],所以输出 YES。
第三组数据中,操作无法改变第一个位置,而升序排列的第一个数必须是 1,所以输出 NO。
数据范围与约定
对于 100% 的数据,保证:
- 1≤T≤5000
- 3≤n≤10
- a 是一个长度为 n 的排列
| 测试点编号 |
分值 |
具体限制变量 |
特殊性质 |
| 1∼3 |
15 |
n=3 |
无 |
| 4∼6 |
n≤5 |
排列已经升序或降序 |
| 7∼10 |
20 |
n≤6 |
a1=1 |
| 11∼14 |
n≤8 |
a1=1 |
| 15∼17 |
15 |
n≤10 |
无 |
| 18∼20 |
n≤10,T≤5000 |