#include #include #define int long long #define double long double using namespace std; const int inf=1e18; int n; vectora; int naive(){ int ok=-inf,ng=inf; while(ng-ok>1){ int c=(ok+ng)/2; atcoder::dsu uf(n); for(int i=0;i=c)uf.merge(i,j); } } if(uf.groups().size()==1)ok=c; else ng=c; } return ok; } int solve(){ cin>>n; a.resize(n); for(int i=0;i>a[i]; sort(a.begin(),a.end()); vectorpl,mn; bool ok=false; for(int i=0;i0)pl.push_back(a[i]); else mn.push_back(a[i]); if(a[i]==0)ok=true; } if(ok)return 0; sort(mn.begin(),mn.end()); sort(pl.begin(),pl.end()); // for(int i:mn)cout<=2){ ans=min(ans,pl[0]*pl.back()); } if(mn.size()>=2){ ans=min(ans,mn[0]*mn.back()); } if(!pl.empty()&&!mn.empty()){ ans=min(ans,pl.front()*mn.back()); } return ans; } signed main(){ int t;cin>>t; while(t--){ int sol=solve(); // int nai=naive(); // cout<<"(sol,nai)"<