#Z10001. Rumb需要一只手

Rumb需要一只手

问题描述

给定一个长度为 nn 的排列 pp。排列指由 11 到 nn 每个整数各出现一次组成的数列。

你必须恰好执行一次操作:选择若干个下标 i1<i2<…<imi_1<i_2<\ldots<i_m,并将这些下标上的元素倒序放回原位置。选中的下标不需要连续。

例如,排列为 [1,6,3,4,5,2][1,6,3,4,5,2] 时,选择第 2,4,62,4,6 个位置,选中元素 6,4,26,4,2 倒序后,排列变为 [1,2,3,4,5,6][1,2,3,4,5,6]。

请判断能否在恰好执行一次操作后,将排列变为从小到大的顺序。

输入格式

第一行输入一个整数 tt,表示测试用例数量。

对于每个测试用例:

  • 第一行输入一个整数 nn,表示排列长度;
  • 第二行输入 nn 个整数 p1,p2,…,pnp_1,p_2,\ldots,p_n,表示排列 pp。

输出格式

对于每个测试用例,输出一行。能排序时输出 YES,否则输出 NO。

样例输入 1

5
1
1
4
4 2 3 1
4
3 4 1 2
5
2 1 3 5 4
6
1 6 3 4 5 2

样例输出 1

YES
YES
NO
NO
YES

样例解释 1

第 11 个测试用例可以只选择一个下标,排列不会改变,仍满足“恰好执行一次操作”。

第 22 个测试用例选择第 11 和第 44 个位置即可排序。

评测数据规模

对于所有数据,保证:

  • 1≤t≤5001\leq t\leq500;
  • 1≤n≤1001\leq n\leq100;
  • 每个 pp 都是 11 到 nn 的一个排列。