만드는 중입니다

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

트랙 정리하기

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

요약
원형 트랙에서 쓰레기를 주울 때마다 이동 방향이 바뀔 때, 모든 쓰레기를 치울 때까지 달구가 걷는 총 거리를 구합니다.
난이도

보통10점 중 5점

유형
수학, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

DGIST 운동회가 끝난 다음 날, 달구는 쓰레기로 가득 찬 길이 NN의 원형 육상 트랙을 정리하려고 한다.

원형 트랙은 둘레를 따라 시계 방향으로 1번 구역부터 NN번 구역까지 총 NN개의 구역이 놓여 있고, 인접한 구역 사이의 간격은 모두 1이다. ii번 구역에는 쓰레기 AiA_i개가 쌓여 있으며, 달구는 모든 구역의 쓰레기를 치우려고 한다. 달구는 지루함을 달래려고 다음 방식으로 쓰레기를 치운다.

  • 달구는 쓰레기가 하나도 없는 1번 구역에서 출발하여 시계 방향으로 이동한다.
  • 도달한 구역에 쓰레기가 없으면 이동 방향을 그대로 유지하며 계속 이동한다.
  • 도달한 구역에 쓰레기가 있으면 그 구역의 쓰레기를 한 개 치우고 이동 방향을 반대로 바꾼다.
  • 모든 구역의 쓰레기를 치우면 트랙 정리를 끝내고 이동을 멈춘다.

입력

첫째 줄에 구역의 개수 NN이 주어진다. (2≤N≤200 0002 \le N \le 200\,000)

둘째 줄에는 각 구역에 있는 쓰레기의 개수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어진다. (0≤Ai≤10 0000 \le A_i \le 10\,000, A1=0A_1 = 0)

출력

위의 규칙에 따라 달구가 이동하는 총 거리를 출력한다.

예제3

  1. 예제 1

    입력
    5
    0 2 0 1 1
    
    예상 출력
    8
    
  2. 예제 2

    입력
    3
    0 1 5
    
    예상 출력
    15
    
  3. 예제 3

    입력
    6
    0 5 3 2 5 2
    
    예상 출력
    55