atcoder#AGC024B. [AGC024B] Backfront

[AGC024B] Backfront

配点 : 500500

問題文

11 以上 NN 以下の整数を並び替えてできる数列 (P1,P2,...,PN)(P_1,P_2,...,P_N) が与えられます。 次の操作を繰り返してこの列を昇順に並び替えるとき、操作の回数の最小値を求めてください。

  • 数列の要素を 11 つ選び、その要素を列の先頭または末尾のうち好きなほうに移動する

なお、この操作によって与えられた列を昇順に並び替えられることは証明できます。

制約

  • 1N2×1051 \leq N \leq 2\times 10^5
  • (P1,P2,...,PN)(P_1,P_2,...,P_N)(1,2,...,N)(1,2,...,N) の並び替えである
  • 入力はすべて整数である

入力

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

NN

P1P_1

::

PNP_N

出力

操作の回数の最小値を出力せよ。

4
1
3
2
4
2

例えば、以下の操作によって列を昇順に並び替えることができます。

  • 22 を先頭に移動する。新しい数列は (2,1,3,4)(2,1,3,4) となる。
  • 11 を先頭に移動する。新しい数列は (1,2,3,4)(1,2,3,4) となる。
6
3
2
5
1
4
6
4
8
6
3
1
2
7
4
8
5
5