B. 数字移动

    传统题 1000ms 256MiB

数字移动

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目背景

2025 年 12 月 GESP C++ 五级编程第 1 题

题目描述

小 A 有一个包含 NN 个正整数的序列 A={A1,A2,,AN}A = \{A_1, A_2, \ldots, A_N\},序列 AA 恰好包含 N2\frac{N}{2} 对不同的正整数。也就是说,对于任意 1iN1 \le i \le N,存在唯一一个 jj 满足 1jN1 \le j \le Niji \ne jAi=AjA_i = A_j

小 A 希望每对相同的数字在序列中相邻。每次操作可以选择任意位置的一个数字,将它移动到任意位置,并花费等于该数字的体力。

请计算一个最小的 xx,使得小 A 能够在每次花费的体力均不超过 xx 的情况下,令每对相同的数字在序列中相邻。数据保证小 A 至少需要执行一次操作。

输入格式

第一行输入一个正整数 NN,保证 NN 为偶数。

第二行输入 NN 个正整数 A1,A2,,ANA_1, A_2, \ldots, A_N

输出格式

输出一行一个整数,表示满足要求的 xx 的最小值。

样例

6
1 2 1 3 2 3
2

样例解释

序列为 [1,2,1,3,2,3][1, 2, 1, 3, 2, 3]

一种可行方案为:

  1. 将位置 55 的数字 22 移动到末尾,花费 22,序列变为 [1,2,1,3,3,2][1, 2, 1, 3, 3, 2]
  2. 将位置 22 的数字 22 移动到位置 55,花费 22,序列变为 [1,1,3,3,2,2][1, 1, 3, 3, 2, 2]

此时所有相同数字均相邻,每次操作的最大花费为 22。无法只使用花费不超过 11 的操作完成目标,因为至少需要移动一个数字 22 或更大的数字来调整相对位置。因此最小 xx22

数据范围与提示

  • 对于 40%40\% 的测试点:1N,Ai1001 \le N, A_i \le 100
  • 对于所有测试点:1N,Ai1051 \le N, A_i \le 10^5NN 为偶数。

CSP-S开学小测

未参加
状态
已结束
规则
OI
题目
5
开始于
2026-9-4 19:45
结束于
2026-9-5 19:45
持续时间
24 小时
主持人
参赛人数
9