시간 제한메모리 제한제출정답맞힌 사람정답 비율
8 초 (추가 시간 없음) 1024 MB222100.000%

문제

1 以上 N 以下の相異なる整数からなる,長さ N の整数列 P = (p1, p2, ..., pN) がある.あなたは,この整数列の連続する部分列を選び,回転という操作を行うことができる.より厳密には,あなたは,次の二種類の操作を,任意の順序で任意の回数行うことができる.

  • 1 ≤ b < e ≤ N を満たす二つの整数 b ,e を選ぶ.連続部分列 pb, ..., pe の先頭の要素を,その連続部分列の末尾へ移動させる.すなわち,pb, pb+1, pb+2, ..., pe-2, pe-1, pe を,pb+1, pb+2, pb+3, ..., pe-1, pe, pb に,それぞれ変更する.
  • 1 ≤ b < e ≤ N を満たす二つの整数 b ,e を選ぶ.連続部分列 pb, ..., pe の末尾の要素を,その連続部分列の先頭へ移動させる.すなわち,pb, pb+1, pb+2, ..., pe-2, pe-1, pe を,pe, pb, pb+1, ..., pe-3, pe-2, pe-1 に,それぞれ変更する.

いずれの操作についても,一回あたり,選んだ連続部分列の長さすなわち e-b+1 だけのコストがかかる.

あなたは,これらの操作を用いて,整数列 P の要素を昇順に並べ替えたい.すなわち,任意の 1 ≤ i ≤ N に対し pi = i を満たすようにしたい.このために必要なコストの総和の最小値を求めよ.

입력

入力は 50 個以下のデータセットからなる. 各データセットは次の形式で表される.

N
p1 p2pN

1 行目には,整数列の長さ N (2 ≤ N ≤ 105) が与えられる.2 行目には,整数列 P の各要素 pi (1 ≤ pi ≤ N) が,空白区切りで与えられる.i ≠ j ならば pi ≠ pj であることが保証される.

入力の終わりは 1 つのゼロからなる行で表される.

출력

各データセットに対し,あなたが整数列 P を昇順に並べ替えるために必要なコストの総和の最小値を,1 行に出力せよ.

예제 입력 1

3
2 3 1
5
1 2 3 4 5
8
1 2 4 5 3 7 6 8
0

예제 출력 1

3
0
5