Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <algorithm>using namespace std;const int N = 10000;long long a[100000];int n;bool cmp(long long a, long long b){return a > b;}int main(){int test;scanf("%d",&test);while (test--){long long ans = 0;scanf("%d",&n);for (int i = 0; i < n; i++){scanf("%lld",a+i);}sort(a,a+n,cmp);for (int i = 0; i < min(N,n); i++){for (int j = i+1; j < min(N,n); j++){ans = max (ans,a[i] * a[j] * (a[i] & a[j]));}}printf("%lld\n",ans);