승리를 위한 빙고!
시간 제한1초메모리 제한1024 MB
각 플레이어의 빙고 시트와 무작위 호출 순서가 주어질 때, 스피드 빙고에서 각 플레이어가 마지막으로 끝낼 확률을 구합니다.
문제
빙고는 여러 명이 즐기는 확률 게임이다. 각 플레이어는 숫자가 적힌 용지를 받고, 진행자가 이 숫자들을 무작위 순서로 부른다. 플레이어는 들은 숫자를 지우고, 가장 먼저 자기 숫자를 모두 지운 플레이어가 이긴다. 이 기본 빙고는 다소 느긋한 게임이다. 플레이어에게 특별히 요구되는 행동은 없고, 잠들지만 않으면 된다.
이 문제에서는 더 역동적인 버전인 스피드 빙고를 다룬다. 스피드 빙고에서도 진행자가 용지의 숫자를 무작위 순서로 부른다. 다만 숫자가 불릴 때마다, 그 숫자를 가장 먼저 신호한 플레이어만 자기 용지에서 지울 수 있다. 한 플레이어가 같은 숫자를 여러 개 가지고 있다면, 한 번에 한 개만 지울 수 있다. 여러 플레이어가 같은 숫자를 가지고 있으면 반응 속도가 가장 빠른 플레이어가 승리에 유리하다. 그렇다면 그 유리함은 얼마나 클까? 이를 구하는 것이 이 문제의 목표다.
명의 플레이어가 있고, 각 플레이어는 개의 숫자가 적힌 용지를 받는다. 숫자는 서로 같을 수도 있다. 플레이어 은 플레이어 보다 반응이 빠르고, 플레이어 는 플레이어 보다 빠르다. 이런 식으로 플레이어 이 가장 느리다. 다음 그림은 세 명의 플레이어가 각각 네 개의 숫자를 받은 경우다.

숫자 이 처음 불리면 더 빠른 플레이어 이 지운다. 두 번째로 이 불리면 플레이어 가 지운다. 두 플레이어 모두 플레이어 이 먼저 지울 숫자를 필요로 하기 때문에, 평균적으로 플레이어 의 성적이 플레이어 와 보다 좋을 것으로 예상된다. 플레이어 와 은 공통된 숫자가 없으므로, 플레이어 가 플레이어 보다 빨라도 두 플레이어의 성적은 서로 독립적이다.
모든 플레이어가 자기 숫자를 전부 지울 때까지, 즉 모든 용지에 있는 개의 숫자(같은 숫자의 반복 포함)를 모두 읽을 때까지 게임을 진행한다. 숫자의 순서가 균일한 무작위라고 할 때, 각 플레이어가 꼴찌로 끝날 확률은 얼마인가?
입력
입력은 스피드 빙고 게임 한 판을 나타낸다. 첫 줄에는 플레이어 수 과 각 용지의 숫자 개수 가 주어진다 (, ). 이어서 개의 줄에 각각 정수 개가 주어진다. 번째 줄은 번째 플레이어 용지의 숫자다. 모든 숫자는 이상 이하이다.
출력
줄을 출력한다. 번째 줄에는 플레이어 가 꼴찌가 될 확률을 출력한다. 모든 값은 절대 오차가 이하여야 한다.