AT_arc225_d [ARC225D] Gap Swap (easy)
题目描述
**本题的设定与 Problem E 相似,但操作的代价不同。**
给定一个 $P$ 的排列,$P$ 是 $ (1,2,\ldots,N) $ 的一个全排列。你可以对 $P$ 执行以下操作:
- 选择整数 $i$ 和 $j$,满足 $1 \le i < j \le N$。此时,要求对于所有满足 $i < k < j$ 的整数 $k$,都有 $P_k = k$。然后交换 $P_i$ 和 $P_j$。
该操作的**代价是 $\boldsymbol{j-i}$**。
注意,如果 $i+1 = j$,则不存在满足 $i < k < j$ 的整数 $k$,因此这种情况下操作总是可以执行。所以,总是存在一种操作序列能将 $P$ 排序为递增序列。
请你求出将 $P$ 排序为递增序列所需的最小总代价。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $P_1$ $P_2$ $\ldots$ $P_N$
输出格式
输出答案。
说明/提示
### 样例解释 1
例如,可以通过以下两个操作将 $P$ 排序为递增序列,总代价为 $6$。
- 第一次操作:选择 $i=4, j=5$,交换 $P_4$ 和 $P_5$。代价为 $1$。
- 第二次操作:选择 $i=1, j=6$,交换 $P_1$ 和 $P_6$。代价为 $5$。
无法用小于 $6$ 的代价将 $P$ 排序,因此答案为 $6$。
### 样例解释 2
所需总代价可以为 $0$。
### 约束条件
- $2 \le N \le 5\times 10^5$
- $1 \le P_i \le N$
- $P$ 是 $ (1,2,\ldots,N) $ 的一个全排列。
- 输入的所有数均为整数。
由 ChatGPT 5 翻译