교도소

면접 대비

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

요약
N개의 방이 단방향으로 고리를 이루고 각 방에 A[i]명의 수감자가 있을 때, 통로를 따라 수감자를 옮겨 모든 방의 수를 같게 만들면서 이동 횟수의 합을 최소로 한다.
난이도

보통10점 중 6점

유형
누적 합, 그리디, 수학, 배열
정답자
아직 제출이 없습니다

문제

태평양 한가운데에 있는 유명한 교도소에는 NN개의 방이 있다. 각 방은 11번 방에서 NN번 방까지 번호가 붙어 있다. 각 ii (1≤i<N1 \le i < N)에 대해 ii번 방에서 i+1i+1번 방으로 이동할 수 있는 통로가 존재하고, NN번 방에서 11번 방으로 이동할 수 있는 통로가 존재한다. 단방향 통로이므로 통로를 통해 반대 방향으로 이동할 수는 없다.

현재 ii번 방에는 A\[i]A\[i]명이 수감되어 있다. 모든 방의 수감자의 수를 합하면 NN의 배수가 된다.

당신은 모든 방에 있는 수감자의 수를 동일하게 만들려고 한다. 이를 위해, 몇 명의 수감자를 통로를 통해 다른 방으로 이동시킬 것이다. 이때, 각 수감자가 통로를 통해 이동하는 횟수를 모두 합한 값을 최소화하고 싶다.

입력

첫 번째 줄에 NN이 주어진다.

두 번째 줄에 A\[1],⋯ ,A\[N]A\[1], \cdots, A\[N]이 공백을 사이에 두고 주어진다.

출력

각 수감자가 통로를 통해 이동하는 횟수를 모두 합한 값의 최솟값을 출력하라.

제한

  • 2≤N≤500,0002 \le N \le 500\\,000
  • 0≤A\[i]≤1,000,000,0000 \le A\[i] \le 1\\,000\\,000\\,000
  • A\[1]+⋯+A\[N]A\[1] + \cdots + A\[N]은 NN의 배수이다.

예제1

  1. 예제 1

    입력
    6
    1 0 2 1 1 1
    
    예상 출력
    5