시간 제한
메모리 제한
시간 제한
2.5초
메모리 제한
256 MB
어느 초등학교에서 운동회가 열리고 있고, 그중 가장 중요한 행사는 해마다 열리는 축구 대회입니다. 운동장에 모인 아이들을 팀으로 나누어야 하지만, 아이들끼리는 팀 구성에 좀처럼 합의하지 못해서 선생님이 대신 나누기로 했습니다.
아이는 모두 n명이며 1번부터 n번까지 번호가 매겨져 있습니다. i번 아이는 자신이 속한 팀의 인원이 a_i명 미만이면 불만을 가진다고 말했습니다. 즉, i번 아이가 속한 팀의 인원은 반드시 a_i명 이상이어야 합니다.
선생님은 모든 아이를 정확히 한 팀에 배정하되, 어떤 아이도 불만을 갖지 않도록 해야 합니다. 이러한 팀 구성 중에서 먼저 팀의 개수를 최대로 하고, 그다음으로 팀의 개수가 그 최댓값과 같은 구성들 중에서 가장 큰 팀의 인원이 가능한 한 작아지도록 하려고 합니다.
첫째 줄에 정수 n (1 ≤ n ≤ 1 000 000)이 주어집니다.
다음 n개의 줄에 각각 정수 a_i (1 ≤ a_i ≤ n)가 주어지며, 이는 i번 아이를 만족시키는 팀의 최소 인원입니다.
두 정수를 공백 하나로 구분하여 출력합니다.
t — 만들 수 있는 팀의 최대 개수m — 모든 n명을 배정하여 정확히 t개의 팀을 만드는 모든 방법 중에서, 가장 큰 팀 인원의 최솟값두 값 모두 입력에 의해 유일하게 결정됩니다.