#AT1156. 0或1次交换
0或1次交换
题目描述
我们有一个序列 ,它是 的一个排列。
你最多可以执行以下操作一次:选择整数和 ,交换和。
注意,你也可以选择不执行该操作。
如果你可以以这种方式将 按升序排序,则输出 YES
,否则输出 NO
。
输入
第一行一个整数
第二行是一个1到的排列
输出
如果你可以按照问题说明的方式将 按升序排序,则输出 YES
,否则输出 NO
。
5
5 2 3 4 1
YES
样例解释
你可以通过交换 和 来将 按升序排序。
5
2 4 3 5 1
NO
样例解释
在这种情况下,交换任意两个元素都无法将 按升序排序。
7
1 2 3 4 5 6 7
YES
样例解释
已经按升序排序,不需要任何操作。
提示