塔子哥对研究区间按位或操作的不同结果感兴趣,这是一个有趣的数学领域,可以探索各种位运算的变化和应用。
塔子哥有一个数组a, 记子区间[l,r]的权值为al∣al+1∣...∣ar,即区间内所有数的按位或运算的结果。
一个长度为n的数组一共有(n+1)∗n/2个子区间, 塔子哥想知道所有子区间一共有多少个不同的权值。
第一行一个整数 n,表示数组长度。 第二行n个整数 a1,a2,...,an,表示数组a的元素。 1≤n≤105,1≤ai≤109
输出一个整数,表示不同的取值个数。
输入1
3
1 2 4
输出1
6
[1,1]的权值为 1 [1,2]的权值为 3 [1,3]的权值为 7 [2,2]的权值为 2 [2,3]的权值为 6 [3,3]的权值为 4 权值两两不同,共有6种取值。
本题属于以下题库,请选择所需题库进行购买