AT_arc152_c.[ARC152C] Pivot

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个包含 NN 项的数列 a1,a2,…,aNa_1,a_2,\ldots,a_N。你可以对这个数列进行任意次如下操作(也可以一次都不进行):

  • 从当前的数列中任选一项,其值记为 ss。然后,对于所有 1≤i≤N1\leq i\leq N,将 aia_i 替换为 2s−ai2s-a_i。但注意,操作后数列中的所有项都不能为负数。

你希望通过适当的操作,使数列中的最大值尽可能小。请问,经过最优操作后,数列中的最大值最小是多少?

输入格式

输入通过标准输入给出,格式如下:

NN a1a_1 a2a_2 …\ldots aNa_N

输出格式

请输出一个整数,表示经过操作后数列中项的最小最大值。

输入输出样例

  • 输入#1

    3
    1 3 6

    输出#1

    5
  • 输入#2

    5
    400 500 600 700 800

    输出#2

    400

说明/提示

限制条件

  • 2≤N≤2×1052\leq N\leq 2\times 10^5
  • 1≤a1<a2<…<aN≤1091\leq a_1<a_2<\ldots<a_N\leq 10^9
  • 输入的所有值均为整数

样例解释 1

如果以 s=3s=3 进行操作,数列变为 (5,3,0)(5,3,0)。此时最大值为 55。在不产生负数的前提下,无法再进一步减小数列的最大值,因此答案为 55。

样例解释 2

可以选择 s=400s=400 进行一次操作,或者先以 s=500s=500 操作,再以 s=300s=300 操作等。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页