#P5985. [PA 2019] Muzyka pop

[PA 2019] Muzyka pop

题目描述

给定 n n 个整数 a1..na_{1..n},请找到 nn 个非负整数 b1..nb_{1..n},使得 $a_1\times \operatorname{f(b_1)}+a_2\times \operatorname{f(b_2)}+...+a_n\times \operatorname{f(b_n)}$ 的值最大,其中 f(x)⁡\operatorname{f(x)} 为 xx 在二进制下的 11 的个数。

你找到的这 nn 个非负整数 b1..nb_{1..n} 需要满足 0≤b1<b2<...<bn≤m0\le b_1<b_2<...<b_n\le m。

输入格式

第一行两个整数 n,mn,m。

第二行包含 nn 个整数 a1,a2,...,ana_1,a_2,...,a_n。

输出格式

输出一行一个整数,即 $a_1\times \operatorname{f(b_1)}+a_2\times \operatorname{f(b_2)}+...+a_n\times \operatorname{f(b_n)}$ 的最大值。

3 5
2 -1 3
9

提示

对于 100%100\% 的数据,1≤n≤2001\le n\le 200,n−1≤m≤1018n-1\le m\le 10^{18},∣ai∣≤1014|a_i|\le 10^{14}。


解释:

b1=3,b2=4,b3=5b_1=3,b_2=4,b_3=5,则答案为 2×2+(−1)×1+3×2=92\times 2+(-1)\times 1+3\times 2=9。