마스코트 정하기

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

요약
한 명 이상을 남기면서 연속 구간을 여러 번 지워 후보 1이 남은 표의 절반 이상을 얻도록 하는 최소 조작 횟수를 구한다.
난이도

보통10점 중 6점

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

문제

NN명의 학생들이 건국대학교의 마스코트를 투표하기 위해 모였다!

투표를 하려는 건국대학교의 학생들은 11번, 22번, ⋯\cdots, NN번 학생이 한 줄로 나란히 서 있다.

각 학생은 11과 NN 사이의 정수 번호를 가지는 NN 종류의 마스코트 후보 중 하나에게 투표하려고 한다. ii번째 학생은 A_iA\_i번 후보에 투표한다.

유력 마스코트 후보인 쿠는 자신이 마스코트가 되기 위해 투표를 하려는 학생들을 쫓아내는 일을 당신에게 맡겼다.

당신은 아래의 행동을 원하는 만큼 반복할 수 있다.

  • 1≤L≤R≤N1 \le L \le R \le N인 두 정수 LL, RR을 골라 LL번, L+1L + 1번, ⋯\cdots, R−1R - 1번, RR번 사람 중 투표장에 남아 있는 학생들을 모두 투표장에서 내쫓는다.
  • 학생들을 내쫓은 이후, 투표장에 최소 11명의 학생이 남아있어야 한다. 즉, 모든 학생을 내쫓는 것은 불가능하다.
  • 투표장에서 내쫓아진 학생들은 투표에 참여할 수 없으며, 투표한 학생의 수에 포함되지 않는다.

투표한 학생이 mm명일 때, ⌈m2⌉\left\lceil\frac{m}{2}\right\rceil명 이상의 표를 받은 모든 후보가 마스코트가 된다.

학생들을 쫓아내는 행동을 최소 몇 번 하여야 11번 마스코트 후보인 쿠가 마스코트가 될 수 있을까?

입력

첫째 줄에 투표를 하려는 학생의 수 NN이 주어진다. (1≤N≤200,000)\left(1 \le N \le 200\\, 000\right)

둘째 줄에 각 학생이 투표하려는 후보의 번호를 나타내는 NN개의 정수 A_1,,A_2,,⋯ ,,A_NA\_1,\\, A\_2,\\, \cdots,\\, A\_N이 공백으로 구분되어 주어진다. (1≤A_i≤N)\left(1 \le A\_i \le N\right)

최소 한 명의 학생이 11번에 투표했음이 보장된다.

출력

11번 마스코트 후보인 쿠가 마스코트가 되기 위한 최소 행동 횟수를 출력한다.

힌트

⌈X⌉\left\lceil X \right\rceil는 올림 함수로써 XX보다 크거나 같은 정수 중 최솟값을 의미합니다. 예를 들어 ⌈52⌉=3\left\lceil \frac{5}{2}\right\rceil = 3, ⌈4⌉=4\left\lceil 4\right\rceil = 4입니다.

예제3

  1. 예제 1

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

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

    입력
    6
    2 4 1 4 3 3
    
    예상 출력
    2