//确定五个数 //1.当题目中全是正数或者全是负数的时候,三个最大的相乘(max1,max2,max3)。 //2.部分正数或者部分负数的时候,正数最大数*两个负数最小数(max1*min1*min2),两个正数最大数*一个负数最大数(包含在1中) #include<iostream> #include<climits> using namespace std; int main(){ int n,i; long long max1=INT_MIN,max2=INT_MIN,max3=INT_MIN; long long min1=INT_MAX,min2=INT_MAX; cin>>n; while(n--){ cin>>i; if(i>max1){ max3=max2; max2=max1; max1=i; }else if(i>max2){ max3=max2; max2=i; }else if(i>max3){ max3=i; } if(i<min1){ min2=min1; min1=i; }else if(i<min2){ min2=i; } } cout<<max(max1*max2*max3,max1*min1*min2)<<endl; }