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

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

행복한 소

면접 대비

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

요약
N일 동안 양끝에서만 먹이를 꺼내며, d일째에 값 H인 먹이를 먹으면 H 곱하기 d의 행복을 얻는다. 총 행복의 최댓값을 구한다.
난이도

보통10점 중 6점

유형
동적 계획법, 구간
정답자
아직 제출이 없습니다

문제

민호는 아끼는 소 한 마리를 키운다. 소가 행복하면 민호도 행복하기에, 민호는 전 재산을 털어 가장 맛있는 여물 NN개를 샀다.

민호는 여물을 관리하기 쉽도록 폭이 좁고 길이가 아주 긴 창고에 순서대로 넣었고, 왼쪽부터 1번, 2번, 3번, ..., NN번 여물이라고 부르기로 했다. 여물마다 소가 먹었을 때 느끼는 행복이 다를 수 있다. 예를 들어 1번 여물을 먹으면 소가 느끼는 행복은 20이지만, 2번 여물을 먹으면 10일 수 있다. 이 값을 여물의 행복도라고 하자.

여물은 날이 지날수록 숙성되어 맛이 좋아진다. 행복도가 HH인 여물을 dd일째에 먹이면 소가 느끼는 행복은 H×dH \times d이다. 여물을 산 당일이 1일째이고 그 다음 날이 2일째다.

백만 년 숙성시킨 여물을 먹이면 소가 극락을 맛보겠지만 민호는 그때까지 기다릴 수 없다. 그래서 여물을 산 날부터 NN일째까지 하루에 한 개씩 소에게 먹이기로 했다. 창고의 폭이 좁아서 가운데에 있는 여물은 꺼낼 수 없고, 왼쪽 끝이나 오른쪽 끝에서 하나만 꺼낼 수 있다. 즉 ii번부터 jj번까지 (1≤i≤j≤N1 \le i \le j \le N) 여물이 남아 있다면 민호는 ii번 여물이나 jj번 여물 중 하나를 골라 먹여야 한다. ii번과 jj번이 아닌 여물은 먹일 수 없다.

민호는 소가 최대한 행복하기를 바란다. NN일에 걸쳐 여물을 모두 먹였을 때 소가 느끼는 행복의 합이 최대가 되는 값을 구하자.

입력

첫째 줄에 여물의 개수 NN (1≤N≤20001 \le N \le 2000)이 주어진다.

둘째 줄에 여물의 행복도 H1,H2,…,HNH_1, H_2, \dots, H_N (1≤Hi≤10001 \le H_i \le 1000)이 공백을 사이에 두고 NN개 주어진다.

출력

NN일에 걸쳐 여물을 모두 먹였을 때 소가 느끼는 행복의 합 중 최댓값을 출력한다.

예제2

  1. 예제 1

    입력
    5
    1 3 1 5 2
    
    예상 출력
    43
    
  2. 예제 2

    입력
    1
    1000
    
    예상 출력
    1000