AT_abc006_4 [ABC006D] トランプ挿入ソート
Description
[problemUrl]: https://atcoder.jp/contests/abc006/tasks/abc006_4
数字が書かれたカードが $ N $ 枚あります。このカードの束(山札)に対して以下の操作が可能です。
- 山札からカードを $ 1 $ 枚抜き取り、任意の場所に挿入する。
山札の上から下に向けて、カードを昇順に並べ替えるために必要な、最小の操作回数を求めてください。
入力は以下の形式で標準入力から与えられる。 > $ N $ $ c_1 $ $ c_2 $ : $ c_N $
1. $ 1 $ 行目にはカードの枚数を示す整数 $ N(1≦N≦3\ \times\ 10^4) $ が与えられる。
2. $ 2 $ 行目からは $ N $ 行にわたって、山札の初期状態が与えられる。
- $ c_i $ は山札の上から $ i $ 番目にあるカードを示す整数で、$ 1≦c_i≦N $ を満たす。
- $ c_1 $ が山札の一番上にあるカードで、$ c_N $ が山札の一番下にあるカードを示す。
- $ i\ \neq\ j $ ならば $ c_i\ \neq\ c_j $ である。つまり、$ N $ 枚のカードは全て異なる数字が書かれている。
山札の上から下に向けて、カードを昇順に並べ替えるために必要な、最小の操作回数を求めてください。
また、出力の末尾には改行を入れること。 この問題には $ 3 $ つのデータセットがあり、データセット毎に部分点が設定されている。
- $ N(1≦N≦16) $ を満たすデータセット全てに正解すると、$ 10 $ 点が与えられる。
- $ N(1≦N≦1,000) $ を満たすデータセット全てに正解すると、上記のデータセットとは別に $ 40 $ 点が与えられる。
- 全てのデータセットに正解すると、$ 100 $ 点が与えられる。
```
6 1 3 5 2 4 6 ``` ```2 ``` - $ 2 $ を抜いて $ 1 $ と $ 3 $ の間に入れます。 - $ 5 $ を抜いて $ 4 $ と $ 6 $ の間に入れます。 ```5 5 4 3 2 1 ``` ```4 ``` ```7 1 2 3 4 5 6 7 ``` ```0 ```
Input Format
N/A
Output Format
N/A