MatKor Cup 자리 배치

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

요약
무작위로 고른 N개의 자리가 미리 정해진 배정과 정확히 i개 일치할 확률을 i=0부터 N까지 10^9+7로 나눈 나머지로 출력한다.
난이도

보통10점 중 7점

유형
조합론, 수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

이번 MatKor Cup에는 총 NN명의 참가자가 참가하였으며, 대회장에는 MM개의 자리가 준비되어 있다. 종우는 NN명의 참가자들에게 각각 서로 다른 자리를 한 개씩 미리 배정해 두었고, 동우가 종우에게 어떻게 자리를 배정했는지 물어보았다.

종우는 그냥 알려줄 수는 없고, 동우에게 NN명의 자리를 예측해 보라고 했다. 동우는 MM개의 자리 중 서로 다른 NN개의 자리를 고른 후, 각 참가자의 자리를 예측했다.

동우가 예측한 NN명 중, 종우가 배정한 자리와 같은 자리에 앉은 사람 수가 ii명일 확률을 각각 구해보자.

종우와 동우는 가능한 모든 경우에 대해 동일한 확률로 자리를 배정하거나 예측한다.

입력

첫 번째 줄에 참가 인원과 자리의 개수 N,M(1≤N≤M≤5,000,000)N,M(1\le N\le M\le 5\\,000\\,000)이 공백으로 구분되어 주어진다.

출력

첫 번째 줄에 동우가 예측한 NN명 중, 종우가 배정한 자리와 같은 자리에 앉은 사람 수가 i(0≤i≤N)i(0\le i \le N)명일 확률을 109+710^9+7로 나눈 나머지를 한 줄에 출력한다. 이때, 00부터 NN까지 총 N+1N+1개의 수를 공백으로 구분하여 출력해야 함에 유의하자.

기약 분수 pq(p≥0,q>0,gcd⁡(p,q)=1)\frac{p}{q}(p\ge 0,q>0,\gcd(p,q) =1)를 MM으로 나눈 나머지는 q−1q^{-1}가 q⋅q−1≡1(modM)q\cdot q^{-1}\equiv 1\pmod M을 만족하는 정수, 즉 qq의 MM에 대한 모듈로 곱셈 역원일 때, p⋅q−1(modM)p\cdot q^{-1}\pmod M로 정의한다. 만약 정수일 경우 q=q−1=1q=q^{-1}=1이므로 p(modM)p\pmod M를 의미한다.

주어진 조건 내에서 확률이 정수 혹은 분모가 109+710^9+7의 배수가 아닌 유리수로 나타내어짐을 증명할 수 있다.

예제6

  1. 예제 1

    입력
    1 1
    
    예상 출력
    0 1
    
  2. 예제 2

    입력
    1 2
    
    예상 출력
    500000004 500000004
    
  3. 예제 3

    입력
    2 2
    
    예상 출력
    500000004 0 500000004
    
  4. 예제 4

    입력
    2 3
    
    예상 출력
    500000004 333333336 166666668
    
  5. 예제 5

    입력
    2 4
    
    예상 출력
    583333338 333333336 83333334
    
  6. 예제 6

    입력
    3 5000000
    
    예상 출력
    291171085 327315168 186142224 195371531