题目描述
鸭哥有一个长度为n的数组a。他定义:
f(a)=a1⊕a2⊕...⊕an。(即所有数字的异或和)
g(a)=gcd(a1,a2,...,an)。(即所有数字的最大公约数)
现在鸭哥希望你从a中选择一个非空子数组b(子数组需满足连续),满足子数组的f(b)×g(b)尽可能大,请你帮他算一算这个最大值吧。
输入描述
第一行一个正整数T(1≤T≤1000),表示测试数据的组数。
接下来对于每组测试数据,输入包含两行。
第一行输入一个正整数n(1≤n≤2×105),表示数组a的长度。
第二行输入n个整数ai(0≤ai≤109),表示数组a。
保证:所有测试数据中n的总和不超过3×105。
输出描述
对于每组测试数据,输出一行一个整数表示最大的f(b)×g(b)值.
补充说明
注意:gcd(0,x)=x,即0与任意数x的最大公约数都是任意数x。
样例1
输入
1
4
1 1 1 1
输出
1
样例解释
可以选择区间[1,3]对应子数组为1,1,1,f和g值都为1,乘积也为1,可以证明不存在更优的答案。