#P1209. 系统权限验证

系统权限验证

题目描述

某公司有 nn 个内部子系统,编号为 00n1n-1,每个子系统运行时需要消耗一定的算力资源。管理员使用一个权限密钥 mm 来控制子系统的开启状态。将 mm 转换为二进制后,从低位到高位依次对应编号 00n1n-1 的子系统(最低位对应编号 00):若某一位是 11,则对应的子系统今天被开启;若为 00,则关闭。

请你帮运维人员计算今天所有开启子系统的总算力消耗。

输入格式

第一行包含两个整数 nnmm1n201 \le n \le 200m2n10 \le m \le 2^n - 1)。

第二行包含 nn 个整数 a0,a1,,an1a_0, a_1, \dots, a_{n-1},依次表示编号 00n1n-1 的子系统的算力消耗(0ai10000 \le a_i \le 1000)。

输出格式

一个整数,表示所有开启子系统的总算力消耗。

样例

4 4
1 10 100 1000
100
20 1048575
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
210
4 0
1000 1000 1000 1000
0

样例解释

  • 样例 11:权限密钥 m=4m=4 的二进制为 1002100_2,第 22 位为 11,因此开启子系统 22,总算力消耗 a2=100 a_2 = 100
  • 样例 22m=1048575m=1048575 的二进制为 2020 位全 11,全部子系统开启,总消耗 1+2++20=2101+2+\dots+20=210
  • 样例 33:权限密钥 m=0m=0,所有子系统关闭,总消耗为 00

数据范围

对于 100%100\% 的数据,1n201 \le n \le 200m2n10 \le m \le 2^n - 10ai10000 \le a_i \le 1000