#AT1392. B - 0 or 1 Swap
B - 0 or 1 Swap
B - 0或1次交换
得分:200 分
题目描述
我们有一个序列 $p$ = {$p_1,\ p_2,\ ...,\ p_N$},它是 {$1,\ 2,\ ...,\ N$} 的一个排列。
你最多可以执行以下操作一次:选择整数 $i$ 和 $j$ $(1 \leq i < j \leq N)$,交换 $p_i$ 和 $p_j$。注意,你也可以选择不执行该操作。
如果你可以以这种方式将 $p$ 按升序排序,则输出 YES
,否则输出 NO
。
约束
- 输入中的所有值都是整数。
- $2 \leq N \leq 50$
- $p$ 是 {$1,\ 2,\ ...,\ N$} 的一个排列。
输入
输入遵循以下格式,从标准输入中获取:
输出
如果你可以按照问题说明的方式将 $p$ 按升序排序,则输出 YES
,否则输出 NO
。
5
5 2 3 4 1
YES
你可以通过交换 $p_1$ 和 $p_5$ 来将 $p$ 按升序排序。
5
2 4 3 5 1
NO
在这种情况下,交换任意两个元素都无法将 $p$ 按升序排序。
7
1 2 3 4 5 6 7
YES
$p$ 已经按升序排序,不需要任何操作。
相关
在下列比赛中: