아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

상금 분배

면접 대비

시간 제한1.5초메모리 제한1536 MB

요약
N개의 상품권에서 7개를 골라 내림차순을 유지하면서 두 합 부등식을 만족시키고, 선택한 값들의 합을 최대로 만든다.
난이도

보통10점 중 6점

유형
정렬, 그리디, 배열
정답자
아직 제출이 없습니다

문제

준겸이는 202^0명은 금상, 212^1명은 은상, 222^2명은 동상으로 총 7명에게 상금을 주는 Bye, Bye 2021 대회를 열었다. 준겸이에게는 NN개의 상품권이 있으며, 상품권 i (1≤i≤N)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을, 그렇지 않다면 가능한 모든 경우의 상금의 총합 중에서 최댓값을 출력하라.

예제3

  1. 예제 1

    입력
    7
    1 2 3 4 5 6 7
    
    예상 출력
    -1
    
  2. 예제 2

    입력
    8
    1 2 3 4 5 6 7 8
    
    예상 출력
    35
    
  3. 예제 3

    입력
    10
    5 5 5 5 5 5 10 5 5 5
    
    예상 출력
    35