#780. 看球的巴士

看球的巴士

样例下载

题目描述

NN 个球迷一起坐车去看球,他们已经排成了一列队伍。活动主办方准备了若干辆巴士来接送球迷。

为了方便乘车,球迷必须按排好的顺序依次上车,即同一辆巴士上的球迷在原队伍中必须是连续的。另外,尽管巴士非常大,没有限载人数,但一辆巴士上的球迷过多,会有爆发冲突的风险。同时,为了提高利用率,每辆巴士至少要载一个球迷,不能空载。

现在主办方让你来安排球迷乘车。这是一件非常棘手的事情,因为球迷们在一个封闭的空间爆发冲突的风险实在太大了。

已知队伍中第 ii 个球迷爆发冲突的风险值为 AiA_i。一辆巴士上爆发冲突的风险值等于该巴士上所有球迷的风险值的 。具体地,若第 kk 辆巴士上载的球迷是第 xx 个至第 AA 个球迷,则该巴士的风险值 Rk=Ax+Ax+1++AAR_k = A_x + A_{x+1} + …… + A_A

总风险值(记为 TT)则等于各辆巴士风险值的 按位或 的值,即 T=R1R2RMT = R_1 | R_2 | …… | R_M ,其中 | 表示 按位或 运算符。M 为球迷乘坐需要的车辆数。主办方要求 M 满足 A ≤ M ≤ B。

你自然希望总风险值 TT 越小越好。如何安排乘车,可以使得总风险值 TT 最小呢?

你只需要输出总风险值 TT 的最小值。

输入格式

第一行:三个整数 N,A,BN, A, B

第二行:NN 个整数 AiA_i

输出格式

一个整数,表示答案。

样例输入

6 1 3
8 1 2 1 5 4

样例输出

11

样例解释

准备 2 辆巴士,分别乘坐 (8,1,2)(8, 1, 2)(1,5,4)(1, 5, 4),它们的和是 (11)(11)(10)(10),代价是 (11OR10)=11(11 \mathbin{\mathrm{OR}} 10) = 11

数据范围

子任务 1 (9 分)1N201 ≤ N ≤ 20

1ABN1 ≤ A ≤ B ≤ N

0Ai10000000000 ≤ A_i ≤ 1000000000

子任务 2 (16 分)1N501 ≤ N ≤ 50

1ABmin{20,N}1 ≤ A ≤ B ≤ \min\{20, N\}

0Ai100 ≤ A_i ≤ 10

子任务 3 (21 分)1N1001 ≤ N ≤ 100

A=1A = 1

1BN1 ≤ B ≤ N

0Ai200 ≤ A_i ≤ 20

子任务 4 (25 分)1N1001 ≤ N ≤ 100

1ABN1 ≤ A ≤ B ≤ N

0Ai10000000000 ≤ A_i ≤ 1000000000

子任务 5 (29 分)1N20001 ≤ N ≤ 2000

A=1A = 1

1BN1 ≤ B ≤ N

0Ai10000000000 ≤ A_i ≤ 1000000000