상금 분배

아직 제출이 없습니다시간 제한1.5초메모리 제한1536 MB

문제

준겸이는 202^0명은 금상, 212^1명은 은상, 222^2명은 동상으로 총 7명에게 상금을 주는 Bye, Bye 2021 대회를 열었다. 준겸이에게는 NN개의 상품권이 있으며, 상품권 i (1iN)i (1 ≤ i ≤ N)A_iA\_i 원으로 교환될 수 있다. 수상자에게는 상금으로 각각 하나의 상품권만 지급하려고 한다. 준겸이는 상금이 불균형해질 것을 우려해 아래와 같은 조건을 만족하는 상금 구성을 찾으려고 한다.

순서대로 1등에게 지급할 상금을 P_1P\_1, 2등을 P_2P\_2, 3등을 P_3P\_3, ..., 7등을 P_7P\_7 라고 하자.

  • P_1 P_2 P_3 P_4 P_5 P_6 P_7P\_1 \ge P\_2 \ge P\_3 \ge P\_4 \ge P\_5 \ge P\_6 \ge P\_7
  • P_1 <P_2 +P_3 <P_4 +P_5 +P_6 +P_7P\_1 < P\_2 + P\_3 < P\_4 + P\_5 + P\_6 + P\_7

준겸이가 가지고 있는 NN개의 상품권이 주어졌을 때, 이런 조건을 만족하는 상금 분배가 가능한 지 알려주는 프로그램을 작성해보자. 만약, 조건을 만족하는 상금 분배가 불가능하다면 -1을, 그렇지 않다면 가능한 모든 경우의 상금의 총합 중에서 최댓값을 출력해야 한다.

입력

첫째 줄에 N(7 N 500,000)N(7 \le N \le 500\\,000)이 주어진다.

둘째 줄에는 NN개의 정수 A_i(1 A_i 2× 108)A\_i (1 \le A\_i \le 2 \times 10^8)가 공백으로 구분되어 주어진다.

출력

조건을 만족하는 상금 분배가 불가능하다면 -1을, 그렇지 않다면 가능한 모든 경우의 상금의 총합 중에서 최댓값을 출력하라.