#AT1156. 0或1次交换

0或1次交换

题目描述

我们有一个序列 p=p1p2,,pNp={p_1,p_2,…,p_N},它是 12,N{1,2,…,N}的一个排列。

你最多可以执行以下操作一次:选择整数iij(1i<jN)j(1 \leq i<j\leq N),交换pip_ipjp_j

注意,你也可以选择不执行该操作。

如果你可以以这种方式将pp 按升序排序,则输出 YES,否则输出 NO

输入

第一行一个整数NN

第二行是一个1到NN的排列

输出

如果你可以按照问题说明的方式将 pp 按升序排序,则输出 YES,否则输出 NO

5
5 2 3 4 1
YES

样例解释

你可以通过交换 p1p_1p5p_5来将 pp 按升序排序。

5
2 4 3 5 1
NO

样例解释

在这种情况下,交换任意两个元素都无法将 pp 按升序排序。

7
1 2 3 4 5 6 7
YES

样例解释

pp 已经按升序排序,不需要任何操作。

提示

2N50 2 \leq N \leq 50