#P4144. 大河的序列

大河的序列

题目背景

“唯有龙虎相伴 最是脉脉深情”

题目来源:KingSann

题目描述

大河有一些袜子,但经常十分散乱的堆放着。

有一天龙儿忍不住了,于是将袜子放到了一个序列上(称作袜子序列)。

每个袜子都有一个dirtydirty值,定义袜子序列的dirtydirty值为 $ \max \left( (dirty_{l} \ bitand \ dirty_{l+1} \ bitand \ \cdots \ bitand \ dirty_{r}) + (dirty_{l} \ bitor \ dirty_{l+1} \ bitor \ \cdots \ bitor \ dirty_{r}) \right) $ ,其中 dirtyi dirty_{i} 表示 第 i i 只袜子 的 dirty dirty 值,bitandbitand表示按位与(C++中是&),bitorbitor表示按位或(C++中是|)。

简而言之,就是找一段连续子序列,使得所有数字的按位与加上按位或最大。

如果这个袜子序列的dirtydirty值达到了某个值,那么龙儿会讨厌大河的。

大河当然不希望这样了,于是她想知道这个袜子序列的dirtydirty值是多少。

输入格式

第一行三个整数 n,b,p n,b,p ,分别表示数列长度和输出相关的东西

第二行有 n n 个整数,表示这个数列的初始数值

输出格式

设答案为 x x ,你需要输出 (x+233)bmodp (x+233)^{b} \,\, \text{mod} \,\,p

10 1 10000000
7 9 9 4 0 0 8 8 4 7
251

提示

1n,p105 1 \le n, p \le 10^{5}

0b,ditryi107 0 \le b, ditry_{i} \le 10^{7}

对于测试点 1 1 和测试点 2 2 的数据,保证 1n100 1 \le n \le 100