단열재

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

Insumax 사는 여러 겹으로 이루어진 단열재를 만든다. 단열재는 nn개의 층으로 구성되며, ii번째 층(i=1,2,,ni = 1, 2, \dots, n)은 양의 정수인 단열 계수 aia_i로 나타낸다. 층의 번호는 열이 빠져나가는 방향을 따라 매긴다.

heat  ->  || a1 | a2 | ... | ai | ai+1 | ... | an ||  ->

단열재 전체의 단열 계수 AA는 각 층의 단열 계수의 합으로 정해진다. 여기에 더해, 어떤 층 뒤에 그보다 단열 계수가 큰 층이 오면 두 값의 차이만큼 AA가 커진다. 정확히는 다음과 같이 정의한다.

A=i=1nai+i=1n1max(0, ai+1ai)A = \sum_{i=1}^{n} a_i + \sum_{i=1}^{n-1} \max(0,\ a_{i+1} - a_i)

예를 들어 층을 5,4,1,75, 4, 1, 7 순서로 놓으면 A=(5+4+1+7)+(71)=23A = (5 + 4 + 1 + 7) + (7 - 1) = 23이다.

주어진 층들의 단열 계수 a1,a2,,ana_1, a_2, \dots, a_n을 적절히 배열하여 단열재 전체의 단열 계수 AA를 최대로 만들었을 때, 그 최댓값을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 층의 개수 nn이 주어진다(1n1000001 \le n \le 100000). 이어지는 nn개의 줄에 각 층의 단열 계수 a1,a2,,ana_1, a_2, \dots, a_n이 한 줄에 하나씩 주어진다. 각 계수는 1ai100001 \le a_i \le 10000을 만족하는 정수이다.

출력

층을 적절히 배열했을 때 얻을 수 있는 단열재 전체의 단열 계수 AA의 최댓값을 한 줄에 하나의 정수로 출력한다.