Question and Answer from L4-M2
def solve(arr):
n = len(arr)
if n == 0:
return -1
prefix_or = [0] * (n + 1)
for i in range(n):
prefix_or[i + 1] = prefix_or[i] | arr[i]
suffix_or = [0] * (n + 1)
for i in range(n - 1, -1, -1):
suffix_or[i] = suffix_or[i + 1] | arr[i]
total_or = prefix_or[n]
if total_or == 0:
return n
max_length = -1
for i in range(n):
subarray_or = 0
for j in range(i, n):
subarray_or |= arr[j]
remaining_or = prefix_or[i] | suffix_or[j + 1]
if subarray_or == remaining_or:
max_length = max(max_length, j - i + 1)
return max_length
t = int(input())
for _ in range(t):
n = int(input())
arr = list(map(int, input().split()))
print(solve(arr))