/**
 * 最大乘积
 * @param A int整型一维数组 
 * @param ALen int A数组长度
 * @return long长整型
 */
long long solve(int* A, int ALen ) {
    // write code here
    long long min1=10001,min2=10001;
    long long max1= -10001,max2=-10001,max3=-10001;
    for(int i=0;i<ALen;i++)
    {
       if(A[i]<min1)
       {
           min2=min1;
           min1=A[i];
       }else if (A[i] < min2)
       {
           min2=A[i];
       }
       if(A[i]>max1)
       {
           max3=max2;
           max2=max1;
           max1=A[i];
       }else if(A[i] > max2)
       {
           max3=max2;
           max2=A[i];
       }else if(A[i] > max3)
       {
           max3=A[i];
       }
    }
    return (max1*max2*max3) > (min1*min2*max1) ? max1*max2*max3 : min1*min2*max1 ;
}