#LQ1584. 循环位运算

循环位运算

问题描述

给定 nn 个数 AiA_i​,每个数我们都将其视为一个 3232 位的二进制数。 你可以进行 mm 次操作,每次选择任意一个数将其循环左移一次。

循环左移表示将某个数的二进制位均左移一位,同时最高位移动到最低位。 例如对于一个 88 位二进制数 10010010,循环左移一次后为 00100101,两次后为 01001010

问做最多 mm 次操作后,nn 个数的和最大是多少。

输入格式

输入的第一行包含两个整数 n,mn,m,用一个空格分隔。 接下来 nn 行,每行包含一个整数 AiA_i​。

输出格式

输出一行包含一个整数表示答案。

3 9
2365587456
2399141888
9437184
7535067152

评测用例规模与约定

对于 30%30\% 的评测用例,n,m12n,m≤12

对于 60%60\% 的评测用例,n,m100n,m≤100

对于所有评测用例,1n,m10001≤n,m≤10000Ai<2320≤A_i<2^{32}