#
# 最大乘积,存在两种情况:a 3个正数; b 1个正数2个负数
#
class Solution:
    def solve(self , A ):
        max1=max2=max3=float('-inf')
        min1=min2=float('inf') 

        for i in A: 
            if i>max3: 
                if i>max2 and i>max1: max1,max2,max3=i,max1,max2 
                elif i>max2 and i<=max1: max2,max3=i,max2 
                else: max3=i 

            if i<=min1: min1,min2=i,min1
            elif i>min1 and i<min2: min2=i 

        return max(max1*max2*max3,max1*min1*min2)

        # write code here