Min Max Mex

시간 제한0.5초메모리 제한512 MB

요약
배열과 최대 K번의 추가 및 삭제 연산이 주어질 때 만들 수 있는 mex의 최솟값과 최댓값을 구한다.
난이도

보통10점 중 6점

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

문제

길이가 NN인 배열 A=\[A_1,A_2,⋯ ,A_N]A=\[A\_1, A\_2, \cdots , A\_N]와 정수 KK가 주어진다. 이때 아래 연산을 최대 KK번 시행할 수 있다.

  • 배열에 임의의 음이 아닌 정수를 하나 추가하는 동작과, 배열이 비어 있지 않은 경우 배열의 원소를 하나 골라 지우는 동작 중에서 정확히 하나만을 수행한다.

모든 연산이 끝난 뒤, mex(A)\text{mex} (A)의 정의를 참고하여 만들 수 있는 mex(A)\text{mex} (A)의 최솟값과 최댓값을 구하시오.

  • mex(A)=\text{mex} (A) = 배열 AA에 포함되지 않은 가장 작은 음이 아닌 정수
  • 예를 들어 mex(\[0,1,4])=2\text{mex} (\[0,1,4]) = 2, mex(\[1,1,1,1])=0\text{mex} (\[1,1,1,1]) = 0이다.

입력

첫 번째 줄에 두 개의 정수 NN, KK가 공백으로 구분되어 주어진다.

두 번째 줄에 NN개의 정수 A_1,A_2,⋯ ,A_NA\_1,A\_2,\cdots ,A\_N이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 모든 연산이 끝난 뒤 만들 수 있는 mex(A)\text{mex} (A)의 최솟값을 출력한다.

두 번째 줄에 모든 연산이 끝난 뒤 만들 수 있는 mex(A)\text{mex} (A)의 최댓값을 출력한다.

제한

  • 1≤N≤200,0001\le N\le 200\\,000
  • 0≤K≤1090\le K\le 10^9
  • 0≤A_i≤109 (1≤i≤N)0\le A\_i\le 10^9 \ (1\le i\le N)

예제1

  1. 예제 1

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