Help me in solving CHFADJSUM problem

My issue

What’s wrong with my approach
A0 + (n-2)(A1+…+An-1) +An <(n-1)(Bn+Bn-1)

My code

import java.util.*;
import java.lang.*;
import java.io.*;

class Codechef
{
	public static void main (String[] args) throws java.lang.Exception
	{
		// your code goes here
    Scanner sc = new Scanner(System.in);
    int t = sc.nextInt();
    while(t-->0){
        int n = sc.nextInt();
       int[] a = new int[n];
      int m1=0;
      int m2=1;
      a[0]=sc.nextInt();
      a[1]=sc.nextInt();
       for(int i=2;i<n;i++){
           a[i] = sc.nextInt();
          
           if(a[i]>a[m2] && m1!=m2)
              m2=i;
               if(a[i]>a[m1])
              m1=i;
       }
       int b= a[m1]+a[m2];
       long sum=0;
       for(int i=1;i<n-1;i++)
          sum+=(n-2)*a[i];
       sum+=a[0]+a[n-1];
       System.out.println(sum<(n-1)*b?"YES":"NO");
    }
	}
}

Problem Link: Chef And Adjacent Sums Practice Coding Problem

@santoon
plzz refer my c++ code

#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--)
	{
	    int n;
	    cin>>n;
	    int a[n],b[n];
	    for(int i=0;i<n;i++)
	   {
	       cin>>a[i];
	   }
	   sort(a,a+n);
	   int z=a[n-2]+a[n-1];
	   int j=n-1;
	   for(int i=0;i<n;i+=2)
	   {
	       b[i]=a[j];
	       j--;
	   }
	  if(n%2)
	  {
	      for(int i=n-2;i>=0;i-=2)
	      {
	          b[i]=a[j];
	          j--;
	      }
	  }
	  else
	  {
	      for(int i=n-1;i>=0;i-=2)
	      {
	          b[i]=a[j];
	          j--;
	      }
	  }
	  int ch=0;
	  for(int i=1;i<n;i++)
	  {
	      if(b[i]+b[i-1]>=z)
	      {
	          ch=1;
	          break;
	      }
	  }
	  if(ch)
	  cout<<"NO";
	  else
	  cout<<"YES";
	  cout<<endl;
	}

}