CF1609A.Divide and Multiply

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

Divide and Multiply

题目描述

William 有一个包含 nn 个数的数组 a1,a2,,ana_1, a_2, \dots, a_n。他可以任意次数地执行以下操作序列:

  1. 从数组中任选两个元素 aia_iaja_j,其中 aia_i 必须是 22 的倍数;
  2. ai=ai2a_i = \frac{a_i}{2}
  3. aj=aj2a_j = a_j \cdot 2

请你帮助 William 求出通过上述操作序列后,数组元素和的最大值。

输入格式

每组测试数据包含多组测试用例。第一行包含测试用例的数量 tt1t1041 \le t \le 10^4)。接下来是每组测试用例的描述。

每组测试用例的第一行包含一个整数 nn1n151 \le n \le 15),表示 William 的数组中元素的个数。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai<161 \le a_i < 16),表示 William 的数组内容。

输出格式

对于每组测试用例,输出通过最优操作序列后数组元素和的最大值。

说明/提示

在第一个样例测试用例中,最优的操作序列如下:

  1. 选择 i=2i = 2j=1j = 1。操作后 a2=42=2a_2 = \frac{4}{2} = 2a1=62=12a_1 = 6 \cdot 2 = 12,数组变为 [12,2,2][12, 2, 2]
  2. 选择 i=2i = 2j=1j = 1。操作后 a2=22=1a_2 = \frac{2}{2} = 1a1=122=24a_1 = 12 \cdot 2 = 24,数组变为 [24,1,2][24, 1, 2]
  3. 选择 i=3i = 3j=1j = 1。操作后 a3=22=1a_3 = \frac{2}{2} = 1a1=242=48a_1 = 24 \cdot 2 = 48,数组变为 [48,1,1][48, 1, 1]

最终答案为 48+1+1=5048 + 1 + 1 = 50

在第三个样例测试用例中,没有办法改变元素和,因此答案为 1010

由 ChatGPT 4.1 翻译

样例

5
3
6 4 2
5
1 2 3 4 5
1
10
3
2 3 4
15
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
50
46
10
26
35184372088846

在线编程 IDE

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