#joi2021hoc. [joi2021ho_c]集合写真 (Group Photo)
[joi2021ho_c]集合写真 (Group Photo)
翻译结果:
某个合宿的最后一天,合宿参与者共 $N$ 人合影。参与者按照身高从矮到高编号为 $1$ 到 $N$。参与者 $h$ 的身高为 $h$ ($1 \leq h \leq N$)。
合影时,参与者站在楼梯上拍摄。这个楼梯一共有 $N$ 级,从低到高依次编号为 $1$ 到 $N$。第 $i+1$ 级比第 $i$ 级高 $2$ ($1 \leq i \leq N-1$)。由于楼梯的宽度很窄,每级只能容纳一个参与者,他们需要竖直排列来进行拍摄。
马上就要开始拍摄了,每个人都站在自己所在的级别上。当前,站在第 $i$ 级 ($1 \leq i \leq N$) 的参与者是 $H_i$。
然而,由于参与者之间的身高差异过大,可能会有一些参与者站在现有顺序中无法出现在照片中。因此,你想要重新排列参与者的位置,使得至少所有人的头部都能够在照片中出现。也就是说,希望满足以下条件:
* 站在第 $i$ 级 ($1 \leq i \leq N$) 的参与者的身高为 $a_i$。对于所有的 $i$ ($1 \leq i \leq N-1$),满足 $a_{i} < a_{i+1} + 2$。
然而,你只能交换相邻参与者的位置。也就是说,在一次操作中,你可以选择任意一个级别 $i$ ($1 \leq i \leq N-1$),交换第 $i$ 级和第 $i+1$ 级的参与者。
你希望通过尽可能少的操作次数,使得满足条件。
给定当前参与者的顺序,编写一个程序来求解所需的最小操作次数。
---
### 输入
输入以以下格式从标准输入中给出。所有输入都为整数。
$N$
$H_1$ $\cdots$ $H_N$
### 输出
输出最小操作次数,以一行形式输出到标准输出。
---
### 约束条件
* $3 \leq N \leq 5,000$。
* $1 \leq H_i \leq N$ ($1 \leq i \leq N$)。
* $H_i \neq H_j$ ($1 \leq i < j \leq N$)。
---
### 示例 1
#### 输入示例 1
```plain
5
3 5 2 4 1
输出示例 1
3
通过以下 次操作,可以满足条件:
- 首先,交换第 级和第 级的参与者。参与者的身高顺序为 。
- 接下来,交换第 级和第 级的参与者。参与者的身高顺序为 。
- 最后,交换第 级和第 级的参与者。参与者的身高顺序为 ,满足条件。
无法在 次或更少的操作中满足条件,因此输出 。
示例 2
输入示例 2
5
3 2 1 5 4
输出示例 2
0
由于已经满足条件,不需要进行操作。
示例 3
输入示例 3
9
6 1 3 4 9 5 7 8 2
输出示例 3
9