CF2021A.Meaning Mean

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Meaning Mean

题目描述

Pak Chanek 有一个包含 nn 个正整数的数组 aa。由于他正在学习如何计算两个数的向下取整平均值,他想在他的数组 aa 上练习这个操作。

只要数组 aa 中至少有两个元素,Pak Chanek 就会进行如下三步操作:

  1. 选择两个不同的下标 iijj1i,ja1 \leq i, j \leq |a|iji \neq j),其中 a|a| 表示当前数组 aa 的长度。
  2. ai+aj2\lfloor \frac{a_i+a_j}{2} \rfloor ^{\text{∗}} 添加到数组末尾。
  3. 从数组中移除 aia_iaja_j,并将剩余部分拼接成新的数组。

例如,假设 a=[5,4,3,2,1,1]a=[5,4,3,2,1,1]。如果选择 i=1i=1j=5j=5,则操作后数组变为 a=[4,3,2,1,3]a=[4,3,2,1,3]。如果选择 i=4i=4j=3j=3,则操作后数组变为 a=[5,4,1,1,2]a=[5,4,1,1,2]

经过所有操作后,数组中只剩下一个元素 xx。请你求出如果 Pak Chanek 最优地进行操作,最终 xx 的最大可能值是多少。

^{\text{∗}} x\lfloor x \rfloor 表示 xx 的向下取整函数,即不大于 xx 的最大整数。例如,6=6\lfloor 6 \rfloor = 62.5=2\lfloor 2.5 \rfloor=23.6=4\lfloor -3.6 \rfloor=-4π=3\lfloor \pi \rfloor=3

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 tt1t50001 \le t \le 5000),表示测试数据组数。

每组测试数据的第一行包含一个整数 nn2n502 \le n \le 50),表示数组 aa 的长度。

每组测试数据的第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \ldots, a_n1ai1091 \le a_i \le 10^9),表示数组 aa 的元素。

注意,所有测试数据中 nn 的总和没有上界。

输出格式

对于每组测试数据,输出一个整数,表示经过所有操作后,最终剩下的那个数 xx 的最大可能值。

说明/提示

在第一个测试用例中,初始数组为 a=[1,7,8,4,5]a=[1,7,8,4,5]。Pak Chanek 可以按如下方式操作:

  1. 选择 i=1i=1j=2j=2,此时 a=[8,4,5,4]a=[8,4,5,4]
  2. 选择 i=3i=3j=2j=2,此时 a=[8,4,4]a=[8,4,4]
  3. 选择 i=2i=2j=3j=3,此时 a=[8,4]a=[8,4]
  4. 选择 i=1i=1j=2j=2,此时 a=[6]a=[6]

所有操作结束后,数组只剩下一个元素 x=6x=6。可以证明,没有任何一组操作序列能使最终的 xx 大于 66

由 ChatGPT 4.1 翻译

样例

3
5
1 7 8 4 5
3
2 6 5
5
5 5 5 5 5
6
4
5

在线编程 IDE

建议全屏模式获得最佳体验