부분 수열의 점수

각 원부분 배열에서 시작점으로부터 k번째 원소에 k를 곱해 더한 값의 최댓값을 구한다.

보통5동적 계획법배열그리디누적 합면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

수열 s=s1,s2,,sns = s_1, s_2, \dots, s_n의 점수는 i=1ni×si\sum_{i=1}^{n} i \times s_i로 구할 수 있다.

연속한 부분 수열도 그 자체로 하나의 수열이므로, 점수를 계산할 때 가중치 1,2,3,1, 2, 3, \dots은 부분 수열의 첫 항부터 다시 센다. 즉, 부분 수열 sl,sl+1,,srs_l, s_{l+1}, \dots, s_r의 점수는 i=lr(il+1)×si\sum_{i=l}^{r} (i - l + 1) \times s_i이다.

수열 ss의 연속한 부분 수열의 점수 중 최댓값을 구하는 프로그램을 작성하시오. 길이가 0인 부분 수열도 고를 수 있고, 그 점수는 0이다.

입력

첫째 줄에 nn (1n2000001 \le n \le 200\,000)이 주어진다.

둘째 줄에 s1,s2,,sns_1, s_2, \dots, s_n이 주어진다. (si107|s_i| \le 10^7)

출력

첫째 줄에 수열 ss의 연속한 부분 수열의 점수 중 최댓값을 출력한다.