만드는 중입니다

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

승리를 위한 빙고!

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

요약
각 플레이어의 빙고 시트와 무작위 호출 순서가 주어질 때, 스피드 빙고에서 각 플레이어가 마지막으로 끝낼 확률을 구합니다.
난이도

어려움10점 중 8점

유형
확률, 조합론, 해시맵, 동적 계획법
정답자
아직 제출이 없습니다

문제

빙고는 여러 명이 즐기는 확률 게임이다. 각 플레이어는 숫자가 적힌 용지를 받고, 진행자가 이 숫자들을 무작위 순서로 부른다. 플레이어는 들은 숫자를 지우고, 가장 먼저 자기 숫자를 모두 지운 플레이어가 이긴다. 이 기본 빙고는 다소 느긋한 게임이다. 플레이어에게 특별히 요구되는 행동은 없고, 잠들지만 않으면 된다.

이 문제에서는 더 역동적인 버전인 스피드 빙고를 다룬다. 스피드 빙고에서도 진행자가 용지의 숫자를 무작위 순서로 부른다. 다만 숫자가 불릴 때마다, 그 숫자를 가장 먼저 신호한 플레이어만 자기 용지에서 지울 수 있다. 한 플레이어가 같은 숫자를 여러 개 가지고 있다면, 한 번에 한 개만 지울 수 있다. 여러 플레이어가 같은 숫자를 가지고 있으면 반응 속도가 가장 빠른 플레이어가 승리에 유리하다. 그렇다면 그 유리함은 얼마나 클까? 이를 구하는 것이 이 문제의 목표다.

nn명의 플레이어가 있고, 각 플레이어는 kk개의 숫자가 적힌 용지를 받는다. 숫자는 서로 같을 수도 있다. 플레이어 11은 플레이어 22보다 반응이 빠르고, 플레이어 22는 플레이어 33보다 빠르다. 이런 식으로 플레이어 nn이 가장 느리다. 다음 그림은 세 명의 플레이어가 각각 네 개의 숫자를 받은 경우다.

숫자 11이 처음 불리면 더 빠른 플레이어 11이 지운다. 두 번째로 11이 불리면 플레이어 22가 지운다. 두 플레이어 모두 플레이어 11이 먼저 지울 숫자를 필요로 하기 때문에, 평균적으로 플레이어 11의 성적이 플레이어 22와 33보다 좋을 것으로 예상된다. 플레이어 22와 33은 공통된 숫자가 없으므로, 플레이어 22가 플레이어 33보다 빨라도 두 플레이어의 성적은 서로 독립적이다.

모든 플레이어가 자기 숫자를 전부 지울 때까지, 즉 모든 용지에 있는 n⋅kn \cdot k개의 숫자(같은 숫자의 반복 포함)를 모두 읽을 때까지 게임을 진행한다. 숫자의 순서가 균일한 무작위라고 할 때, 각 플레이어가 꼴찌로 끝날 확률은 얼마인가?

입력

입력은 스피드 빙고 게임 한 판을 나타낸다. 첫 줄에는 플레이어 수 nn과 각 용지의 숫자 개수 kk가 주어진다 (1≤n≤1001 \le n \le 100, 1≤k≤10001 \le k \le 1000). 이어서 nn개의 줄에 각각 정수 kk개가 주어진다. ii번째 줄은 ii번째 플레이어 용지의 숫자다. 모든 숫자는 11 이상 10910^9 이하이다.

출력

nn줄을 출력한다. ii번째 줄에는 플레이어 ii가 꼴찌가 될 확률을 출력한다. 모든 값은 절대 오차가 10−610^{-6} 이하여야 한다.

예제2

  1. 예제 1

    입력
    3 4
    1 2 3 4
    1 2 5 6
    3 4 7 8
    
    예상 출력
    0.000000000
    0.500000000
    0.500000000
    
  2. 예제 2

    입력
    4 2
    1 2
    3 4
    10 5
    7 8
    
    예상 출력
    0.250000000
    0.250000000
    0.250000000
    0.250000000