렉시오

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

요약
한 턴이 끝난 뒤 각 참가자가 가진 카드 수가 주어질 때, 각 참가자 쌍이 최대 한 번만 점수를 전달할 수 있다는 조건에서 모든 점수 차이를 정산하는 최소 전달 횟수를 구한다.
난이도

보통10점 중 6점

유형
그리디, 구현, 수학
정답자
아직 제출이 없습니다

문제

NN명의 사람들이 "렉시오"라는 보드게임을 즐기고 있다. 참가자들은 일렬로 앉아 있으며, 왼쪽의 참가자부터 차례대로 1,2,⋯ ,N1, 2, \cdots, N번으로 번호가 매겨진다.

렉시오는 매 턴 모든 사람이 카드를 같은 개수로 나눠 갖고, 자신이 가진 카드를 규칙에 따라 제거하다가 누군가 한 명이 자신의 카드를 모두 제거하면 해당 턴이 끝나고 점수를 정산하는 방식으로 진행되는 게임이다. 원하는 만큼 턴을 즐기고 최종 점수가 가장 높은 사람이 승리하는 게임인데, 한 턴의 점수를 정산하는 방식이 독특하다.

각 턴이 끝날 때 자신보다 카드가 적은 사람이 있으면 그 사람에게 카드 개수의 차이만큼 점수를 전달한다. 따라서 점수가 같은 쌍을 제외한 모든 쌍의 참가자들이 점수를 주고받게 된다. 규칙대로 점수를 정산하면 점수를 전달하는 횟수가 워낙 많아서 점수를 정산하는 방식을 최적화하려고 한다. 사람들은 적어도 다음의 네 가지 조건에 맞는 정산 방식을 좋은 정산 방식이라고 부르기로 했다.

  1. 결과적으로 각 참가자가 얻거나 잃은 점수는 규칙에 따라 직접 점수를 주고받았을 때와 같아야 한다.
  2. 임의의 한 참가자가 이웃한 참가자에게 점수를 전달하는 것이 가능하다.
  3. 참가자 한 쌍을 골라서 한 참가자가 다른 참가자에게 점수를 전달할 수 있다. 이런 전달은 전체 정산 과정에서 최대 한 번 가능하다.
  4. 위 조건들을 만족하면서 점수를 전달하는 행위를 최소화해야 한다. 다시 말해서, 조건을 만족하면서 점수를 전달하는 행위가 더 적은 정산 방식이 있으면 좋은 정산 방식이 아니다.

예를 들어 AA, BB, CC의 33명이 렉시오를 해서 턴이 종료했다고 하자. 턴이 끝나고 남은 카드가 각각 1010, 55, 00개라면 AA는 BB에게 55점, CC에게 1010점을 줘야 하고, BB는 CC에게 55점을 줘야 한다. 11번 항목에 따라 어떤 과정을 통해서 전달하든 AA는 1515점을 잃고 BB는 점수를 잃지 않고 CC는 1515점을 얻기만 하면 된다.

AA, BB, CC가 순서대로 앉아 있다고 했을 때, AA가 BB에게 1515점을 주고, BB가 CC에게 1515점을 주면 점수를 22번 전달해서 정산을 마칠 수 있다.

그런데 33번 항목에 쓰여있는 대로 참가자 쌍 (A,C)(A, C)를 선택해 AA가 CC에게 1515점을 전달하면 한 번에 점수를 정산할 수 있다. 더 적은 횟수로 정산할 수는 없으니 33번 항목에 따라 좋은 정산 방식은 한 번에 점수를 정산하는 방식이 된다.

턴이 끝나고 남아있는 카드의 개수가 참가자들이 앉아있는 순서대로 주어진다고 할 때, 좋은 정산 방식의 점수 전달 횟수를 구해보자.

입력

첫째 줄에 게임에 참가하는 참가자 수를 나타내는 정수 NN이 주어진다. (2≤N≤1,000,000)(2 \le N \le 1\\,000\\,000)

둘째 줄에는 왼쪽으로부터 ii번 참가자의 해당 턴에 남은 카드의 개수를 a_ia\_i라고 했을 때, a_1a\_1부터 a_Na\_N까지 차례대로 공백으로 구분되어 주어진다. (0≤a_i≤1,000,000)(0 \le a\_i \le 1\\,000\\,000)

게임의 한 턴은 누군가 카드를 전부 소모한 순간에 종료하므로, 입력에는 반드시 단 한 개의 00이 존재한다.

출력

문제의 조건에 따라 좋은 정산 방식의 점수 전달 횟수를 첫째 줄에 출력한다.

예제3

  1. 예제 1

    입력
    3
    10 5 0
    
    예상 출력
    1
    
  2. 예제 2

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

    입력
    17
    2 3 4 4 0 4 3 3 4 3 5 1 3 2 3 3 4
    
    예상 출력
    8