파티

NYPC 2021 · 예선

기말 시험이 끝난 NN 명의 친구들은 파티를 하기로 했다. 파티에 필요한 음식과 물품들을 사기 위해 각자 미리 돈을 사용했다. 친구들은 11 번부터 NN 번까지 번호가 붙어 있다고 하자. 친구들 중 ii 번째 친구가 사용한 돈은 MiM_i원이다.

친구들의 부담을 동일하게 하기 위해 파티 후에 서로 돈을 주고 받아 사용한 금액이 같도록 하려고 한다. 금액이 정확히 나누어 떨어지지는 않을 수 있으므로, 돈을 가장 많이 사용한 친구와 가장 적게 사용한 친구의 금액 차이가 11인 것까지는 허용한다.

33 명의 친구 A, B, C가 파티를 하였고, 각자 사용한 금액이 60006\,000원, 30003\,000원, 10001\,000원이라고 하자. 아래 그림처럼 B가 A에게 334334원, C가 A에게 23332\,333원을 주면 각자 사용한 금액이 A는 33333\,333원, B는 33343\,334원, C는 33333\,333원이 되어 위의 조건을 만족한다. (아래 그림에서 네모 안은 사용한 금액, 화살표 위는 전달한 금액이다. 전달 받은 금액만큼 사용한 금액이 줄어드는 것으로 생각하면 된다.)

<그림 1> 총 전달 금액 2667원 예시
<그림 1> 총 전달 금액 2667원 예시

위 <그림 1>의 경우 전달된 금액은 모두 334+2333=2667334 + 2\,333 = 2\,667원이다. 아래 <그림 2>와 같이 하면 조건을 만족하면서 전달된 금액을 26662\,666원으로 줄일 수 있다.

<그림 2> 총 전달 금액 2666원 예시
<그림 2> 총 전달 금액 2666원 예시

NN 명의 학생이 처음에 사용한 금액들을 입력으로 받아 조건을 만족하도록 돈을 주고 받을 때 가능한 최소의 전달된 금액을 계산하는 프로그램을 작성하라.

입력 형식

첫 줄에 친구들의 수를 나타내는 정수 NN이 주어진다. (2N2000002 \leq N \leq 200\,000)

둘째 줄에 음이 아닌 정수 M1M_1, M2M_2, \ldots, MNM_N이 공백을 사이에 두고 주어진다. (M1+M2++MN1015M_1 + M_2 + \cdots + M_N \leq 10^{15})

출력 형식

전달된 금액의 가능한 최솟값을 출력한다.

예제

입력

3 6000 3000 1000

출력

2666

채점 방식

입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞추어야 그 종류에 배정된 점수를 받을 수 있다.

종류 1: 7

N20N \leq 20

종류 2: 12

N50N \leq 50

종류 3: 16

N2000N \leq 2\,000

종류 4: 22

M1+M2++MNM_1 + M_2 + \cdots + M_NNN으로 나누어 떨어짐.

종류 5: 43

추가적인 제한 조건이 없음.

해설