Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:128 MB

#1605. 连续or值最大

Statistics

给一个长度为n的序列,a[1], a[2], ... , a[n], 选出连续的k个数,使得这k个数的最大值加这k个数的or值最大。
假设选出的数为a[l], a[l + 1], ... , a[l + k -1],即求
max(a[l], a[l + 1], ... , a[l + k -1]) + (a[l] | a[l + 1] | ... | a[l + k -1])


对于所有的1 <= k <= n,输出答案




输入:


第一行输入一个n,第二行输入n个数,a[1], a[2], ... , a[n].



输出:


输出n行,每行一个整数。第i行表示k = i时的答案。



样例输入:


3
1 0 2


样例输出:


4
4
5



数据范围:


对于20%的数据,1 <= n <= 300
对于40%的数据,1 <= n <= 5000
对于100%的数据,1 <= n <= 200000, 0 <= a[i] < 2^16