만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

무한 수열

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

요약
배열 A를 무한히 이어 붙인 뒤 i번째 값에서 i를 뺀 수열에서 연속한 구간 합의 최댓값을 구합니다.
난이도

보통10점 중 7점

유형
누적 합, 수학, 동적 계획법
정답자
아직 제출이 없습니다

문제

세훈이는 생일 기념으로 정수 NN개로 이루어진 수열 AA를 선물로 받았다. 수열의 길이가 너무 짧다고 생각한 세훈이는 다음과 같은 방식으로 무한히 긴 수열을 만들기로 했다.

수열 AA를 무한히 이어 붙인 뒤, 모든 양의 정수 ii에 대해 ii번째 수에서 ii를 뺀다.

수열이 길어진 것에 만족한 세훈이는 이렇게 만들어진 수열에서 연속된 몇 개의 수를 골라 더해 보기로 했다. 큰 값을 좋아하는 세훈이는 이 합을 최대로 만들고 싶어졌다.

예를 들어 수열 AA가 [9,1,7][9, 1, 7]이었다면, 새로 만들어진 수열은 [8,−1,4,5,−4,1,…][8, -1, 4, 5, -4, 1, \ldots]가 되고, 이 수열의 최대 연속합은 1번째 수부터 4번째 수까지의 합인 8−1+4+5=168-1+4+5=16이다.

입력

첫째 줄에 수열 AA의 길이 NN이 주어진다. (1≤N≤500 0001 \le N \le 500\,000)

둘째 줄에 수열 AA의 원소 A1,A2,…,ANA_1, A_2, \ldots, A_N이 공백으로 구분되어 주어진다. (∣Ai∣<231|A_i| < 2^{31})

출력

문제의 정답을 출력한다.

힌트

입출력 양이 많으므로 문제지 2-4페이지의 언어 가이드에 있는 빠른 입출력을 사용하는 것을 권장한다.

예제2

  1. 예제 1

    입력
    3
    9 1 7
    
    예상 출력
    16
    
  2. 예제 2

    입력
    2
    -12 -17
    
    예상 출력
    0