description: You are given n integers a_1, a_2, …, a_n. Find the maximum value of max(a_l, a_{l + 1}, …, a_r) ⋅ min(a_l, a_{l + 1}, …, a_r) over all pairs (l, r) of integers for which 1 ≤ l < r ≤ n.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10 000) — the number of test cases.
  
  The first line of each test case contains a single integer n (2 ≤ n ≤ 10^5).
  
  The second line of each test case contains n integers a_1, a_2, …, a_n (1 ≤ a_i ≤ 10^6).
  
  It is guaranteed that the sum of n over all test cases doesn't exceed 3 ⋅ 10^5.
  
  Output
  
  For each test case, print a single integer — the maximum possible value of the product from the statement.
  
  Example
  
  Input
  
  
  4
  3
  2 4 3
  4
  3 2 3 1
  2
  69 69
  6
  719313 273225 402638 473783 804745 323328
  
  
  Output
  
  
  12
  6
  4761
  381274500335
  
  Note
  
  Let f(l, r) = max(a_l, a_{l + 1}, …, a_r) ⋅ min(a_l, a_{l + 1}, …, a_r).
  
  In the first test case, 
  
    * f(1, 2) = max(a_1, a_2) ⋅ min(a_1, a_2) = max(2, 4) ⋅ min(2, 4) = 4 ⋅ 2 = 8. 
    * f(1, 3) = max(a_1, a_2, a_3) ⋅ min(a_1, a_2, a_3) = max(2, 4, 3) ⋅ min(2, 4, 3) = 4 ⋅ 2 = 8. 
    * f(2, 3) = max(a_2, a_3) ⋅ min(a_2, a_3) = max(4, 3) ⋅ min(4, 3) = 4 ⋅ 3 = 12. 
  
  
  
  So the maximum is f(2, 3) = 12.
  
  In the second test case, the maximum is f(1, 2) = f(1, 3) = f(2, 3) = 6.
solution: import java.util.*;
  import java.io.*;
  import java.math.*;
  import java.util.LinkedList;
  public class Main
  {
   
      public static void process()throws IOException
      {
       int n=ni();
       long arr[]=larr(n);
       long max=Long.MIN_VALUE;
       for(int i=1;i<n;i++)
       {
        if((arr[i]*arr[i-1])>max)
          max=arr[i]*arr[i-1];
       }
       pn(max);
      }
      
       
      
      static AnotherReader sc;
      static PrintWriter out;
      public static void main(String[]args)throws IOException
      {
          out = new PrintWriter(System.out);
          sc=new AnotherReader();
          boolean oj = true;
  
             //PrintWriter out=new PrintWriter("output");
          //oj = System.getProperty("ONLINE_JUDGE") != null;
          //if(!oj) sc=new AnotherReader(100);
      //int T=ni(); while(T-->0)
        //process();
   //   int i=1;
        int T=ni();
   while(T-->0)
   //     {
   //      p("Case #"+i+": ");
              process();
      //         i++;
      // }
          long s = System.currentTimeMillis();
        
          out.flush();
          if(!oj)
              System.out.println(System.currentTimeMillis()-s+"ms");
          System.out.close();  
      }
      static void sort(long arr[],int n)
      {
      shuffle(arr,n);
      Arrays.sort(arr);
      }
      static void shuffle(long arr[],int n)
      {
          Random r=new Random();
          for(int i=0;i<n;i++)
          {
            long temp=arr[i];
            int pos=i+r.nextInt(n-i);
            arr[i]=arr[pos];
            arr[pos]=temp;
          }
      }
   
      static void pn(Object o){out.println(o);}
      static void p(Object o){out.print(o);}
      static void pni(Object o){out.println(o);System.out.flush();}
      static int ni()throws IOException{return sc.nextInt();}
      static long nl()throws IOException{return sc.nextLong();}
      static double nd()throws IOException{return sc.nextDouble();}
      static String nln()throws IOException{return sc.nextLine();}
      static String nn()throws IOException{return sc.next();}
      static long gcd(long a, long b)throws IOException{return (b==0)?a:gcd(b,a%b);}
      static int gcd(int a, int b)throws IOException{return (b==0)?a:gcd(b,a%b);}
      static long bit(long n)throws IOException{return (n==0)?0:(1+bit(n&(n-1)));}
      static int[] iarr(int N)throws IOException{int[]ARR=new int[N];for(int i=0;i<N;i++){ARR[i]=ni();}return ARR;}
      static long[] larr(int N)throws IOException{long[]ARR=new long[N];for(int i=0;i<N;i++){ARR[i]=nl();}return ARR;}
      static boolean multipleTC=false;
              
   
  /////////////////////////////////////////////////////////////////////////////////////////////////////////
      static class AnotherReader{BufferedReader br; StringTokenizer st;
      AnotherReader()throws FileNotFoundException{
      br=new BufferedReader(new InputStreamReader(System.in));}
      AnotherReader(int a)throws FileNotFoundException{
      br = new BufferedReader(new FileReader("input.txt"));}
      String next()throws IOException{
      while (st == null || !st.hasMoreElements()) {try{
      st = new StringTokenizer(br.readLine());}
      catch (IOException  e){ e.printStackTrace(); }}
      return st.nextToken(); } int nextInt() throws IOException{
      return Integer.parseInt(next());}
      long nextLong() throws IOException
      {return Long.parseLong(next());}
      double nextDouble()throws IOException { return Double.parseDouble(next()); }
      String nextLine() throws IOException{ String str = ""; try{
      str = br.readLine();} catch (IOException e){
      e.printStackTrace();} return str;}}
   
      
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  }