여우 라벨링
시간 제한3초메모리 제한512 MB
n마리의 여우와 각 여우의 초기 색깔, 그리고 정수 k가 주어질 때, 무작위로 k마리씩 표지를 붙이는 과정이 모든 여우를 구별할 때까지 걸리는 기대 시간을 구합니다.
문제
Bytica는 생물 탐사 활동을 하고 있다. 지금 그녀에게는 실험에 쓸 색깔 있는 여우 마리가 있다. 다만 문제가 하나 있다. 같은 색 여우는 완전히 구별할 수 없다.
Bytica는 여우에 색 라벨을 붙이려고 한다. 모든 여우 쌍이 구별될 때까지 그녀는 다음 과정을 반복한다.
- 아직 사용하지 않은 색을 하나 고른다(여우의 원래 색으로도 쓰이지 않은 색이어야 한다).
- 우리에서 여우 마리를 무작위로 뽑는다. 크기가 인 부분집합은 모두 같은 확률로 뽑힌다.
- 뽑힌 여우 각각에 고른 색의 라벨을 붙인다.
각 과정(세 단계)은 정확히 1분이 걸린다.
두 여우는 색이 다르거나, 라벨 색들의 집합이 다르면 구별 가능하다.
Bytica가 확신하지 못하는 것은 모든 여우 쌍이 구별될 때까지 걸리는 기대 시간뿐이다. 이 값을 계산하는 프로그램을 작성하라.
입력
입력은 두 줄로 이루어진다. 첫 번째 줄에는 정수 과 가 주어진다(). 두 번째 줄에는 정수 개가 주어지며, 번째 정수는 번째 여우의 초기 색이다.
색은 1000 이하의 양의 정수로 표현된다.
출력
모든 여우 쌍이 구별될 때까지 걸리는 기대 시간(분)을 실수 하나로 출력한다. 상대 오차 또는 절대 오차가 이내이면 정답으로 인정한다.