每个测试文件均包含多组测试数据。第一行输入一个整数 代表数据组数,每组测试数据描述如下:第一行输入一个整数 表示序列长度。第二行输入 个整数 表示序列元素。除此之外,保证单个测试文件的 之和不超过 。
对于每一组测试数据,新起一行输出一个整数,表示所有非空子数组的按位或之和对 取模后的结果。
2 3 1 2 3 4 5 1 2 7
15 51
对于第一组测试数据,所有非空子数组及其按位或为:
子数组
:按位或为
;
子数组
:按位或为
;
子数组
:按位或为
;
子数组
:按位或为
;
子数组
:按位或为
;
子数组
:按位或为
。
把它们加起来得到
。
对于第二组测试数据,同理枚举所有非空子数组并计算按位或后求和,结果为
。
如果您选用 Python 作答本题,请注意:在几乎全部的情况下,PyPy 的运行速度优于 Python,我们建议您选择对应版本的 PyPy 进行提交、而不是 Python。