序列划分
题号:NC212138
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给出一个长为 n 的序列
你需要将序列 A 划分成若干个连续段,一段的权值定义为这段内的所有数的按位或。
你需要恰当地选择划分方案,使得每段的权值之和最大。
求出每段的权值之和的最大值。

输入描述:

第一行一个整数 n。
接下来一行 n 个整数 

输出描述:

一个整数,表示答案。
示例1

输入

复制
3
9 6 16

输出

复制
31

说明

一种最优的方案是划分成 (9,6) (16)。

备注: