MultiMax
시간 제한1초메모리 제한512 MB
값이 -1000 이상 1000 이하인 카드 n장 중 2장 또는 3장을 골라 곱이 최대가 되도록 한다.
문제
카드가 n장 있고, 각 카드에는 정수가 하나씩 적혀 있다. 같은 정수가 적힌 카드가 여러 장 있을 수도 있다. 이 카드 중에서 두 장 또는 세 장을 골라, 고른 카드에 적힌 수의 곱을 최대로 만들려고 한다.
예를 들어 5, 10, -2, 3, 5, 2가 적힌 카드 6장이 있으면 5와 10과 5를 고를 때 곱이 250이 되어 가장 크다. 10, 0, -5, 2가 적힌 카드 4장이 있으면 10과 2를 고를 때 곱이 20이 되어 가장 크다.
카드 n장에 적힌 수가 주어졌을 때, 두 장 또는 세 장을 골라 얻을 수 있는 곱의 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 카드의 개수 n이 주어진다. (3 ≤ n ≤ 10,000)
둘째 줄에 카드에 적힌 정수 n개가 공백으로 구분되어 주어진다. 각 정수는 -1,000 이상 1,000 이하이다.
출력
첫째 줄에 곱의 최댓값을 출력한다.