MatKor Cup 자리 배치
시간 제한2초메모리 제한1024 MB
무작위로 고른 N개의 자리가 미리 정해진 배정과 정확히 i개 일치할 확률을 i=0부터 N까지 10^9+7로 나눈 나머지로 출력한다.
문제
이번 MatKor Cup에는 총 명의 참가자가 참가하였으며, 대회장에는 개의 자리가 준비되어 있다. 종우는 명의 참가자들에게 각각 서로 다른 자리를 한 개씩 미리 배정해 두었고, 동우가 종우에게 어떻게 자리를 배정했는지 물어보았다.
종우는 그냥 알려줄 수는 없고, 동우에게 명의 자리를 예측해 보라고 했다. 동우는 개의 자리 중 서로 다른 개의 자리를 고른 후, 각 참가자의 자리를 예측했다.
동우가 예측한 명 중, 종우가 배정한 자리와 같은 자리에 앉은 사람 수가 명일 확률을 각각 구해보자.
종우와 동우는 가능한 모든 경우에 대해 동일한 확률로 자리를 배정하거나 예측한다.
입력
첫 번째 줄에 참가 인원과 자리의 개수 이 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 동우가 예측한 명 중, 종우가 배정한 자리와 같은 자리에 앉은 사람 수가 명일 확률을 로 나눈 나머지를 한 줄에 출력한다. 이때, 부터 까지 총 개의 수를 공백으로 구분하여 출력해야 함에 유의하자.
기약 분수 를 으로 나눈 나머지는 가 을 만족하는 정수, 즉 의 에 대한 모듈로 곱셈 역원일 때, 로 정의한다. 만약 정수일 경우 이므로 를 의미한다.
주어진 조건 내에서 확률이 정수 혹은 분모가 의 배수가 아닌 유리수로 나타내어짐을 증명할 수 있다.