페이지가 로드되지 않나요? 여기를 눌러보면 고쳐질 수도 있어요.
Placeholder

#7069
서브태스크

휴식이 필요해 1s 64MB

문제

여러분은 정올 캠프에 참가하여 모의고사를 치르고 있다.

모의고사에는 N개의 문제가 있는데, 각 문제 별로 해결하는데 필요한 시간이 다르다.

i번째 문제를 푼다고 하면, d_i초가 걸린다.

하지만 문제를 연속으로 푸는 것은 너무 힘든 일이다. 만약 문제를 연속으로 푼다고 한다면, 해결하는데 걸리는 시간이 2배씩 증가한다.

1, 2, 3번 문제를 연속으로 해결한다고 가정하면, 첫 문제는 d_1초 만에 해결할 수 있지만 두 번째 문제는 2 × d_2초 만큼 걸리며, 세 번째 문제는 4 × d_3초 만큼 걸린다.

만약 그 상태에서 문제를 하나 더 해결한다면 원래의 8배의 시간이 걸릴 것이다.

그러니 때때로 조금 쉬는 것이 문제를 더 잘 해결할 수 있을 수도 있다. 여러분이 1시간(3600초)을 쉰다면, 여러분은 기운을 완전히 회복하여 다시 원래의 시간으로 문제를 해결할 수 있다.

문제를 푸는 순서는 자유롭게 바꿀 수 있으며, 한 번 풀기 시작한 문제는 끝까지 풀어야 한다.

문제의 순서와 휴식을 적절히 배치하여 모든 문제를 해결하는데 걸리는 최소 시간을 알아내자!


입력

첫 줄에 문제의 수 N이 입력된다.

두 번째 줄에 각 문제를 해결하는데 걸리는 시간 d_i가 띄어쓰기로 구분되어 입력된다.

<제약조건>

1 ≤ N ≤ 100,000

1 ≤ d_i ≤ 28,880


출력

모든 문제를 해결하는데 걸리는 최소 시간을 초 단위로 출력한다. (당연히 휴식한 시간도 포함된다.)


부분문제

번호 점수 조건
#125점

N ≤ 1,000

#210점

모든 문제는 해결하는데 동일한 시간이 소요된다. (d_1 = d_2 = ... = d_n)

#365점

추가적인 제한이 없다.


예제 #1

2
300 400
1000

예제 #2

4
1000 1100 1000 800
9300

예제 #3

12
1 1 1 1 1 1 1 1 1 1 1 1
3726

로그인해야 코드를 작성할 수 있어요.