AT_arc162_b [ARC162B] Insertion Sort 2

Description

[problemUrl]: https://atcoder.jp/contests/arc162/tasks/arc162_b $ (1,2,\ldots,N) $ の順列 $ P=(P_1,P_2,\ldots,P_N) $ が与えられます。 $ P $ に対し以下の操作を $ 2\times\ 10^3 $ 回以下行うことで $ P $ を昇順に並び替えられるか判定し、可能な場合は実際に操作手順を一つ示してください。 - $ 1\leq\ i\ \leq\ N-1,0\ \leq\ j\ \leq\ N-2 $ を満たす整数 $ i,j $ を選ぶ。$ Q\ =\ (Q_1,\ Q_2,\ldots,Q_{N-2}) $ を $ P $ から $ (P_i,P_{i+1}) $ を抜き出して得られる列としたとき、$ P $ を $ (Q_1,\ldots,Q_j,\ P_i,\ P_{i+1},\ Q_{j+1},\ldots,Q_{N-2}) $ で置き換える。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ P_1 $ $ P_2 $ $ \ldots $ $ P_N $

Output Format

$ 2\times\ 10^3 $ 回以下の操作で $ P $ を昇順に並び替えられない場合 `No` を出力せよ。昇順に並び替えられる場合、操作回数を $ M\ (0\ \leq\ M\ \leq\ 2\times\ 10^3) $ とし、$ k $ 回目 $ (1\leq\ k\ \leq\ M) $ の操作で選んだ $ i,j $ を $ i_k,j_k $ として以下の形式で出力せよ。 > Yes $ M $ $ i_1 $ $ j_1 $ $ i_2 $ $ j_2 $ $ \vdots $ $ i_M $ $ j_M $ 条件を満たす解が複数存在する場合、どれを出力しても正解とみなされる。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 10^3 $ - $ P $ は $ (1,2,\ldots,N) $ の順列 - 入力される数値は全て整数 ### Sample Explanation 1 $ i=3,j=1 $ として操作を行います。 $ Q=(P_1,P_2,P_5)=(1,4,5) $ になるので、$ P=(Q_1,P_3,P_4,Q_2,Q_3)\ =\ (1,2,3,4,5) $ となります。 よって $ 1 $ 回の操作で $ P $ を昇順に並び替えられます。 ### Sample Explanation 2 $ 2\times\ 10^3 $ 回以下の操作では $ P $ を昇順に並び替えられないことが証明できます。 ### Sample Explanation 3 操作回数を最小化する必要はありません。