对数组进行排序;

  1. 若均为正数或均为负数或负数个数<2,则最大值应为 data[-1] * data[-2] * data[-3]
  2. 若负数数量为2 则最大值可能为 data[0] * data[1] * data[-1] 最大值为二者之一
import sys
n = int(sys.stdin.readline().strip())
if n < 3:
    print(0)
    exit()
data = list(map(int, sys.stdin.readline().strip().split()))
data.sort()
print(max(data[-1] * data[-2] * data[-3], data[-1]*data[0]*data[1]))