4546:[GESP202512五级] 数字移动

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0 解决:0

题目描述

## 题目背景 2025 年 12 月 GESP C++ 五级编程第 1 题 ## 题目描述 小 A 有一个包含 $N$ 个正整数的序列 $A=\{A_1,A_2,\cdots,A_N\}$,序列 $A$ 恰好包含 $\frac{N}{2}$ 对不同的正整数。形式化地,对于任意 $1 \le i \le N$,存在唯一一个 $j$ 满足 $1\le j \le N, i\neq j, A_i=A_j$。 小 A 希望每对相同的数字在序列中相邻,为了实现这一目的,小 A 每次操作会选择任意 $i(1\le i\le N)$,将当前序列的第 $i$ 个数字移动到任意位置,并花费对应数字的体力。 例如,假设序列 $A=\{1,2,1,3,2,3\}$,小 A 可以选择 $i=2$,将 $A_2=2$ 移动到 $A_3=1$ 的后面,此时序列变为 $\{1,1,2,3,2,3\}$,耗费 $2$ 点体力。小 A 也可以选择 $i=3$,将 $A_3=1$ 移动到 $A_2=2$ 的前面,此时序列变为 $\{1,1,2,3,2,3\}$,花费 $1$ 点体力。 小 A 可以执行任意次操作,但他希望自己每次花费的体力尽可能小。小 A 希望你能帮他计算出一个最小的 $x$,使得他能够在每次花费的体力均不超过 $x$ 的情况下令每对相同的数字在序列中相邻。 ## 输入格式 第一行一个正整数 $N$,代表序列长度,保证 $N$ 为偶数。 第二行包含 $N$ 个正整数 $A_1,A_2,\ldots,A_N$,代表序列 $A$。且对于任意 $1\le i\le N$,存在唯一一个 $j$ 满足 $1\le j\le N,i\neq j,A_i=A_j$。 数据保证小 A 至少需要执行一次操作。 ## 输出格式 输出一行,代表满足要求的 $x$ 的最小值。 ## 样例 ```input1 6 1 2 1 3 2 3 ``` ```output1 2 ``` ## 数据范围 对于 $40\%$ 的测试点,保证 $1\le N,A_i\le 100$。 对于所有测试点,保证 $1\le N,A_i\le 10^5$。

来源/分类