#ABC135B. 0 or 1 Swap

0 or 1 Swap

题目描述

We have a sequence pp = {p1, p2, ..., pNp_1,\ p_2,\ ...,\ p_N} which is a permutation of {1, 2, ..., N1,\ 2,\ ...,\ N}.

You can perform the following operation at most once: choose integers ii and jj (1i<jN)(1 \leq i \lt j \leq N), and swap pip_i and pjp_j. Note that you can also choose not to perform it.

Print YES if you can sort pp in ascending order in this way, and NO otherwise.

我们有一个序列 pp = { p1, p2, ..., pNp_1,\ p_2,\ ...,\ p_N } ,它是 { 1, 2, ..., N1,\ 2,\ ...,\ N } 的排列。

你最多可以进行一次下面的操作:选择整数 iijj (1i<jN)(1 \leq i \lt j \leq N) 并将其排列在一起。 (1i<jN)(1 \leq i \lt j \leq N) ,并交换 pip_ipjp_j 。请注意,您也可以选择不执行该操作。

如果可以将 pp 按升序排序,则打印 "是",否则打印 "否"。

输入格式

输入内容按以下格式标准输入:

NN
p1p_1 p2p_2 ...... pNp_N

输出格式

如果能按照问题陈述中的方式对 pp 进行升序排序,则打印 ,否则打印

样例 #1

样例输入 #1

5
5 2 3 4 1

样例输出 #1

YES

样例 #2

样例输入 #2

5
2 4 3 5 1

样例输出 #2

NO

样例 #3

样例输入 #3

7
1 2 3 4 5 6 7

样例输出 #3

YES

说明

数据规模与约定

  • 所有输入值均为整数。
  • 2N502 \leq N \leq 50
  • pp 是 { 1, 2, ..., N1,\ 2,\ ...,\ N } 的排列。

样例 11 解释

您可以通过交换 p1p_1p5p_5pp 按升序排序。

样例 22 解释

在这种情况下,交换任何两个元素都不会将 pp 按升序排序。

样例 33 解释

pp 已按升序排序,因此无需进行任何操作