월향 조각사

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

요약
주어진 위치별 대리석 높이에서 블록을 제거해 만들 수 있는 모든 크기와 중심 위치의 피라미드 개수를 구한다.
난이도

보통10점 중 6점

유형
구현, 투 포인터, 누적 합, 수학
정답자
아직 제출이 없습니다

문제

조각의 신 아이보리는 본인의 능력을 널리 뽐내고자 1×11 \times 1 대리석 블록들을 이용하여 피라미드 조각상을 만들려고 한다.

크기가 h(h≥1,hh (h \geq 1, h는 정수))인 피라미드는 다음 조건을 만족해야 한다.

  • 전체 너비가 2h−12h - 1이다.
  • 피라미드를 이루는 위치는 연속해야 한다.
  • 피라미드를 이루는 위치의 높이가 순서대로 1,2,⋯ ,h−1,h,h−1,⋯ ,2,11, 2, \cdots, h - 1, h, h - 1, \cdots, 2, 1이다.
  • 피라미드를 이루지 않는 위치의 높이는 00이다.

현재 아이보리의 작업실에는 ii번 위치에 대리석 블록 A_iA\_i개가 세로로 쌓여있다. 일류 조각가인 아이보리는 본인이 조각할 수 있는 피라미드의 수가 궁금해졌다.

f(h)f(h)를 대리석 블록을 적절히 제거하여 크기 hh인 피라미드를 조각하는 경우의 수라고 정의할 때, ∑f(h)\sum{f(h)}를 구해보자! 단, 피라미드의 크기와 중심의 위치가 모두 같으면 같은 경우로 취급한다.

입력

첫 번째 줄에 대리석의 개수 NN이 주어진다. (1≤N≤200,000)(1 \leq N \leq 200\\,000)

두 번째 줄에 ii번 위치에 쌓여 있는 대리석 블록의 개수 A_1,A_2,⋯ ,A_NA\_1, A\_2, \cdots, A\_N이 공백으로 구분되어 주어진다. (1≤A_i≤109)(1 \le A\_i \le 10^9)

출력

첫 번째 줄에 ∑f(h)\sum{f(h)}를 출력한다.

예제2

  1. 예제 1

    입력
    5
    1 2 3 4 5
    
    예상 출력
    9
    
  2. 예제 2

    입력
    2
    1000000000 1000000000
    
    예상 출력
    2