#include<stdio.h> int main() { int n; long long arr[1000000];//定义一个足够大的数组 scanf("%d",&n); getchar(); for(int i=0;i<n;i++) { scanf("%lld ",&arr[i]); } for(int i=0;i<n;i++)//冒泡排序,外层循环排序的次数 { for(int j=0;j<n-i-1;j++)//比较的次数 { if(arr[j]>arr[j+1]) { int temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } long long ji=0; if(arr[0]<0&&arr[1]<0)//两种情况:比较最小的两个的乘积与第三大的数与第二大数的乘积比较大小 { long long a=arr[0]*arr[1]; long long b=arr[n-3]*arr[n-2]; ji=a>b?a:b; } else { ji=arr[n-3]*arr[n-2]; } printf("%lld\n",arr[n-1]*ji); }