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

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

꿀 따기

면접 대비

시간 제한1초메모리 제한512 MB

요약
일렬로 놓인 서로 다른 두 위치에 벌을, 또 다른 위치에 벌집을 놓을 때, 각 벌이 지나가는 모든 칸의 꿀을 모은다. 시작 칸은 제외하고 공유 칸은 두 번 세며, 얻을 수 있는 최대 꿀의 양을 구한다.
난이도

보통10점 중 6점

유형
누적 합, 그리디, 배열, 구현
정답자
아직 제출이 없습니다

문제

아래와 같이 좌우로 NN개의 장소가 있다.

장소들 중 서로 다른 두 곳을 골라서 벌을 한 마리씩 둔다. 또, 다른 한 장소를 골라서 벌통을 둔다. 아래 그림에서 연한 회색의 장소는 벌이 있는 장소이고 진한 회색의 장소는 벌통이 있는 장소이다.

두 마리 벌은 벌통으로 똑바로 날아가면서 지나가는 모든 칸에서 꿀을 딴다. 각 장소에 적힌 숫자는 벌이 지나가면서 꿀을 딸 수 있는 양이다.

  1. 두 마리가 모두 지나간 장소에서는 두 마리 모두 표시된 양 만큼의 꿀을 딴다. (벌통이 있는 장소에서도 같다.)
  2. 벌이 시작한 장소에서는 어떤 벌도 꿀을 딸 수 없다.

위의 그림과 같이 배치된 경우 두 마리의 벌 모두 4+1+4+9+9=274 + 1 + 4 + 9 + 9 = 27의 꿀을 따서, 전체 꿀의 양은 54가 된다.

위의 그림과 같이 배치된 경우 왼쪽 장소에서 출발한 벌은 9+4+4+9+9=359 + 4 + 4 + 9 + 9 = 35의 꿀을 따고 오른쪽 장소에서 출발한 벌은 4+9+9=224 + 9 + 9 = 22의 꿀을 따므로, 전체 꿀의 양은 5757이 된다.

위의 그림과 같은 경우는 전체 꿀의 양이 31이 된다.

장소들의 꿀 양을 입력으로 받아 벌들이 딸 수 있는 가능한 최대의 꿀의 양을 계산하는 프로그램을 작성하라.

입력

첫 번째 줄에 장소의 수 NN이 주어진다.

다음 줄에 왼쪽부터 각 장소에서 꿀을 딸 수 있는 양이 공백 하나씩을 사이에 두고 주어진다.

출력

첫 번째 줄에 가능한 최대의 꿀의 양을 출력한다.

제한

  • 3≤N≤100 0003 \le N \le 100\,000
  • 각 장소의 꿀의 양은 11 이상 10 00010\,000 이하의 정수이다.

예제3

  1. 예제 1

    입력
    7
    9 9 4 1 4 9 9
    
    예상 출력
    57
    
  2. 예제 2

    입력
    7
    4 4 9 1 9 4 4
    
    예상 출력
    54
    
  3. 예제 3

    입력
    3
    2 5 4
    
    예상 출력
    10