Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#include <algorithm>using namespace std;long long t,n,a[100005];int main() {scanf("%d",&t);long long i,j;long long res=0;while (t--) {res=0;scanf("%d",&n);for (i=1;i<=n;i++) scanf("%lld",&a[i]);sort(a+1,a+n+1);if (n>10000) {for (i=n;i>n-5000;i--)for (j=i-1;j>i-5000;j--)if (res<a[i]*a[j]*(a[i]&a[j]))res=a[i]*a[j]*(a[i]&a[j]);} else {for (i=n;i>1;i--)for (j=i-1;j>0;j--)if (res<a[i]*a[j]*(a[i]&a[j]))res=a[i]*a[j]*(a[i]&a[j]);}printf("%lld\n",res);}return 0;}