100 atcoder#ABC135B. [ABC135B] 0 or 1 Swap

[ABC135B] 0 or 1 Swap

配点 : 200200

問題文

{1, 2, ..., N1,\ 2,\ ...,\ N} を並び替えた数列 pp = {p1, p2, ..., pNp_1,\ p_2,\ ...,\ p_N} があります。

あなたは一度だけ、整数  i, j\ i,\ j  (1i<jN)\ (1 \leq i < j \leq N) を選んで  pi$\ p_i\$ と \ p_j$ を入れ替える操作を行うことができます。操作を行わないことも可能です。

pp を昇順にすることができるなら YES を、できないならば NO を出力してください。

制約

  • 入力は全て整数である。
  • 2N502 \leq N \leq 50
  • pp は {1, 2, ..., N1,\ 2,\ ...,\ N} を並び替えた数列である。

入力

入力は以下の形式で標準入力から与えられる。

NN

p1p_1 p2p_2 ...... pNp_N

出力

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 が最初から昇順なので、操作を行う必要はありません。