AT_agc003_c [AGC003C] BBuBBBlesort!
题目描述
高桥君在生日时收到了一个长度为 $N$ 的数列。第 $i$ 个元素是整数 $A_i$。任意两个元素都互不相同。高桥君想要将这个数列重新排列成单调递增的顺序。
高桥君拥有超能力,可以在任意时刻进行以下两种操作:
- 操作 $1$:选择数列中连续的两个元素,交换它们的顺序。
- 操作 $2$:选择数列中连续的三个元素,反转这三个元素的顺序。
高桥君喜欢操作 $2$,但不喜欢操作 $1$。请你求出,在使用这两种操作将数列变为单调递增时,操作 $1$ 的最小次数。
输入格式
输入通过标准输入给出,格式如下:
> $N$ $A_1$ $A_2$ $\ldots$ $A_N$
输出格式
输出操作 $1$ 的最小次数。
说明/提示
## 限制条件
- $1 \leq N \leq 10^5$
- $0 \leq A_i \leq 10^9$
- 如果 $i \neq j$,则 $A_i \neq A_j$
- 所有输入均为整数。
## 样例解释 1
可以通过如下操作将数列变为单调递增:
- 首先,将最后三个元素反转,数列变为 $2,1,3,4$。
- 然后,将前两个元素交换,数列变为 $1,2,3,4$。
在这个操作序列中,连续两个元素交换的操作次数为 $1$。无法通过更少的操作 $1$ 次数得到单调递增的数列,因此输出 $1$。
由 ChatGPT 4.1 翻译