P14899 [ICPC 2018 Yokohama R] What Goes Up Must Come Down

题目描述

几张印有数字的卡片在桌子上排成一列。 我们想要改变它们的顺序,使得一部分卡片按上面数字的非递减顺序排列,其余部分按非递增顺序排列。例如,$(1, 2, 3, 2, 1)$、$(1, 1, 3, 4, 5, 9, 2)$ 和 $(5, 3, 1)$ 是可接受的顺序,但 $(8, 7, 9)$ 和 $(5, 3, 5, 3)$ 则不是。 形式化地说,设 $n$ 为卡片数量,重新排序后第 $i$ 个位置($1 \leq i \leq n$)卡片上的数字为 $b_i$,应存在 $k \in \{1, \ldots, n\}$,使得 ($b_i \leq b_{i+1} \; \forall i \in \{1, \ldots, k-1\}$) 且 ($b_i \geq b_{i+1} \; \forall i \in \{k, \ldots, n-1\}$) 成立。 为了重新排序,每次只允许交换相邻两张卡片的位置。我们想知道完成重新排序所需的最小交换次数。

输入格式

输入包含单个测试用例,格式如下。 $$ \begin{aligned} &n\\ &a_1 \; \ldots \; a_n\\ \end{aligned} $$ 第一行的整数 $n$ 是卡片的数量($1 \leq n \leq 100\,000$)。第二行的整数 $a_1$ 到 $a_n$ 是卡片上印着的数字,按它们原始位置的顺序给出($1 \leq a_i \leq 100\,000$)。

输出格式

在一行中输出将卡片按指定要求重新排序所需的最小交换次数。