对于给定的n和m以及a1,...,an,请你计算:
s=∑i=1nmax1≤j≤min{m,n−i+1}{ai⊕ai+1⊕...⊕ai+j−1}
第1行为空格分隔的n和m。
第2行为空格分隔的a1,...,an。
一个数字,为计算结果s(只保留低31位即可)。
10 5
1 2 3 4 5 6 7 8 9 10
92
1≤m≤n≤5×105
∀i∈[1,n],1≤ai≤231−1
前三个测试点 1s
剩下的 2s
384MiB
n, m = map(int, raw_input().split())
a = map(int, raw_input().split())
def xor(a, b):
return a ^ b
s = sum(max(reduce(xor, a[i:i + j + 1]) for j in range(min(m, n - i + 1))) for i in range(n))
print(s & 0x7fffffff)