class Solution {
public:
    long long solve(vector<int>& A) {
        // write code here
        int n = A.size();
        sort(A.begin(), A.end());
        long max = (long)A[n - 1] *(long)A[n - 2]* (long)A[n - 3];
        if(A[0] < 0 && A[1] < 0 &&(long)A[0] *(long)A[1] * (long)A[n - 1] > max){
    
           max = (long)A[0] * (long)A[1] * (long)A[n - 1];
        } 
        return max;
    }
};

//虽然方法是n*logn的但是还是有几个要注意的,当int型整数进行相乘时,会返回的是一个int型,如果会超出范围者返回一个奇奇怪怪的数,有可能是随机数,所以但凡遇到那些int型相乘结果是给max赋值或者比较的时候一定得强转