#YDRS017C. 宝石 (diamond)

宝石 (diamond)

题目描述

云小斗得到了一串宝石,这串宝石从左到右共有 nn 颗,第 ii 颗宝石的能量值为 viv_i

现在,云小斗想把这串宝石分成恰好 kk 段。每一段都必须是连续的一段宝石,并且不能为空。

对于一段宝石,定义它的权值为这一段中所有宝石能量值的按位或结果。也就是说,如果这一段包含的能量值依次为 a1,a2,,ata_1,a_2,\ldots,a_t,那么这一段的权值为:

$a_1~\operatorname{or}~a_2~\operatorname{or}~\cdots~\operatorname{or}~a_t$

其中 or\operatorname{or} 表示按位或运算。

整个宝石串的权值定义为所有段的权值之和。

云小斗想知道,在所有合法的分段方案中,整个宝石串的最大权值是多少?

输入格式

从文件 diamond.in 中读入数据。

第一行两个整数 n,kn,k,表示宝石的数量以及需要分成的段数。

第二行包含 nn 个整数,第 ii 个整数表示第 ii 颗宝石的能量值 viv_i

输出格式

输出到文件 diamond.out 中。

输出一个整数,表示整个宝石串可能得到的最大权值。

输入输出样例

输入样例 1

5 2
7 5 8 2 3

输出样例 1

22

样例 1 说明

一种最优的分段方式为:第一段只包含第 11 颗宝石,第二段包含第 252\sim 5 颗宝石。

第一段为 [7][7],这一段的权值为 77

第二段为 [5,8,2,3][5,8,2,3],这一段的权值为:

$5~\operatorname{or}~8~\operatorname{or}~2~\operatorname{or}~3=15$

因此整个宝石串的权值为:

7+15=22 7+15=22

可以证明,不存在权值和更大的分段方案,因此答案为 2222

样例 2

见下发文件中 diamond2.in\textbf{\textit{diamond2.in}}diamond2.out\textbf{\textit{diamond2.out}}

说明

数据规模与约定

对于 30%30\% 的数据,满足 n10n\le 10k10k\le 10

对于 60%60\% 的数据,满足 n100n\le 100k100k\le 100

对于 100%100\% 的数据,满足 kn2000k\le n\le 20001vi5×1051\le v_i\le 5\times 10^5