#P1980. 【饿了么算法岗】2025-3-7-第一题-数组最大值

【饿了么算法岗】2025-3-7-第一题-数组最大值

题目描述

鸭哥有一个长度为nn的数组aa。他定义:

f(a)=a1a2...anf(a)=a_1\oplus a_2\oplus ...\oplus a_n。(即所有数字的异或和)

g(a)=gcd(a1,a2,...,an)g(a)=gcd(a_1,a_2,...,a_n)。(即所有数字的最大公约数)

现在鸭哥希望你从aa中选择一个非空子数组bb(子数组需满足连续),满足子数组的f(b)×g(b)f(b)\times g(b) 尽可能大,请你帮他算一算这个最大值吧。

输入描述

第一行一个正整数T(1T1000)T(1\le T\le 1000),表示测试数据的组数。

接下来对于每组测试数据,输入包含两行。

第一行输入一个正整数n(1n2×105)n(1\le n\le 2\times 10^5),表示数组aa的长度。

第二行输入nn个整数ai(0ai109)a_i(0\le a_i\le 10^9),表示数组aa

保证:所有测试数据中nn的总和不超过3×1053\times 10^5

输出描述

对于每组测试数据,输出一行一个整数表示最大的f(b)×g(b)f(b)\times g(b)值.

补充说明

注意:gcd(0,x)=xgcd(0,x)=x,即00与任意数xx的最大公约数都是任意数xx

样例1

输入

1
4
1 1 1 1

输出

1

样例解释

可以选择区间[1,3][1,3]对应子数组为1,1,1{1, 1,1},ffgg值都为11,乘积也为11,可以证明不存在更优的答案。