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

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

누텔라의 인생

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

요약
연속으로 x개의 대회를 건너뛸 때마다 x+1의 손해가 발생하는 상황에서, 값을 감소하지 않게 유지하며 참가할 대회 부분수열을 골라 총 재미를 최대로 만든다.
난이도

어려움10점 중 8점

유형
동적 계획법, 세그먼트 트리, 정렬
정답자
아직 제출이 없습니다

문제

웹사이트 chefforces.at이 내년 대회 일정을 방금 발표했다. 대회는 nn개가 열리고 일정은 바뀌지 않는다. 올레그는 매우 신이 나서 재미를 최대로 만들기로 했다.

각 대회의 출제진을 꼼꼼히 분석한 올레그는 대회마다 정수 aia_i를 하나씩 정했다. aia_i는 ii번째 대회를 치를 때 올레그가 얻는 재미의 양이다. 악명 높은 우연 때문에 일부 aia_i는 음수일 수 있다.

그런데 올레그는 대회를 놓치고 싶지 않고, 특히 여러 대회를 연속으로 놓치고 싶지 않다. 형식적으로, 올레그가 어떤 대회를 건너뛰기로 했고 바로 그 앞에서 열린 대회를 이미 xx개 건너뛰었다면, 총 재미는 x+1x + 1만큼 줄어든다.

마지막으로, 올레그는 각 대회가 자신이 참가한 바로 이전 대회보다 재미있기를 바란다. 다시 말해, 올레그가 ii번째와 jj번째 대회에 참가하고 i<ji < j라면 ai≤aja_i \leq a_j가 성립해야 한다.

올레그가 총 재미를 최대로 만들기 위해 어떤 대회에 참가해야 하는지 결정하도록 도와주자.

입력

첫째 줄에는 일정에 있는 대회의 수 nn이 주어진다 (1≤n≤1051 \leq n \leq 10^5).

둘째 줄에는 nn개의 정수 aia_i가 주어진다 (−109≤ai≤109-10^9 \leq a_i \leq 10^9).

출력

올레그가 얻을 수 있는 최대 재미의 양을 정수 하나로 출력한다.

예제2

  1. 예제 1

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

    입력
    7
    -3 -4 -2 -2 -6 -8 -1
    
    예상 출력
    -11