from collections import deque
num_n = int(input())
nums = [int(i) for i in input().strip().split()]

max_3 = deque(maxlen=3)
min_2 = deque(maxlen=2)

def insertmax(a, max_3):
    if a < max(max_3):
        if a > min(max_3):
            l = list(max_3)
            l.append(a)
            l.sort()
            return deque(l[1::], 3)
        else:
            return max_3
    else:
        max_3.append(a)
        return max_3


def insertmin(a, min_2):

    if a < min(min_2):
        min_2.append(a)
        return min_2
    else:
        if a < min_2[0]:
            # print(min_2, a)
            min_2[0] = a
        return min_2

def sort_dequen(a, maxlen):
    a = list(a)
    a.sort(reverse=True)
    return deque(a, maxlen)

def sort_deque(a, maxlen):
    a = list(a)
    a.sort()
    return deque(a, maxlen)

for i in nums:
    # if i == -6974:
    #     print(max_3, min_2)
    if len(max_3) >= 3 and i > 0:
        max_3 = insertmax(i, max_3)
    if len(max_3) < 3 and i > 0:
        max_3.append(i)
        max_3 = sort_deque(max_3, 3)
    
    if len(min_2) < 2 and i < 0:
        min_2.append(i)
        min_2 = sort_dequen(min_2, 2)
    if len(min_2) >= 2 and i < 0:
        min_2 = insertmin(i, min_2)

a = 0
b = 0
if len(max_3) == 3:
    a = max_3[0] * max_3[1] * max_3[2]
if len(min_2) == 2:
    b = min_2[0] * min_2[1] * max_3[-1]

if a > b:
    print(a)
else:
    print(b)

贪心,也就是把会影响最终结果的数据cache起来