만드는 중입니다

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

Maximize MEX

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

요약
N개의 정수로 이루어진 multiset에서 부분집합을 골라 그 mex로 바꾸는 연산을 반복하여 마지막에 남는 원소의 최댓값을 구합니다.
난이도

보통10점 중 7점

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

문제

정수를 원소로 갖는 중복을 허용하는 집합 SS가 주어진다.

초기에 집합 SS는 a1,a2,⋯ ,aNa_1,a_2,\cdots,a_N의 NN개의 원소로 이루어져 있다.

이 집합에 다음 연산을 원하는 만큼 반복하여 집합 SS에 원소가 단 하나 남도록 한다.

  • 집합 SS의 공집합이 아닌 부분집합 TT를 선택한다. SS에서 TT를 뺀 뒤, TT에 존재하지 않는 가장 작은 음이 아닌 정수를 SS에 넣는다.

연산을 적절히 실행하여 SS에 원소가 하나 남았을 때, 그 원소의 최댓값을 구해보자.

입력

첫째 줄에 정수 NN이 주어진다. (2≤N≤300 000)(2\leq N \leq 300\,000)

둘째 줄에 정수로 이루어진 수열 a1,a2,⋯ ,aNa_1,a_2,\cdots,a_N이 공백으로 구분되어 주어진다. (0≤ai<N)(0\leq a_i < N)

출력

연산을 적절히 실행하였을 때, SS에 남아있는 원소의 최댓값을 출력한다.

예제4

  1. 예제 1

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

    입력
    4
    3 3 3 3
    
    예상 출력
    3
    
  3. 예제 3

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

    입력
    2
    0 0
    
    예상 출력
    2