AT_arc031_3 [ARC031C] 積み木

题目描述

有 $N$ 个高度各不相同的积木排成一行。你可以多次交换相邻的两个积木。请计算,最少需要多少次交换,才能使积木从最高的那个开始,向左右两边高度依次递减。也就是说,设重新排列后第 $i$ 个积木的高度为 $A_i$,最高的积木的位置为 $T$,则需要满足: - $A_1 < A_2 < \cdots < A_T > \cdots > A_{N-1} > A_N$ 请输出完成这种排列所需的最小交换次数。

输入格式

输入通过标准输入给出,格式如下: > $N$ $B_1$ $B_2$ ... $B_N$ - 第 $1$ 行给出积木的数量 $N\ (1 \leq N \leq 10^5)$。 - 第 $2$ 行给出初始排列下每个积木的高度 $B_i\ (1 \leq B_i \leq N)$。 - 所有积木高度均不相同,即 $B_i \neq B_j\ (i \neq j)$。

输出格式

输出完成排列所需的最小交换次数。输出末尾需换行。

说明/提示

## 部分分 本题有 $2$ 个数据集,每个数据集有不同的部分分。 - 对于满足 $N \leq 100$ 的数据集 $1$,答对可得 $30$ 分。 - 对于无额外限制的数据集 $2$,答对可得 $70$ 分(与上面数据集分数无关)。 由 ChatGPT 4.1 翻译