[RCOJ Educational Contest #01] Tổ hợp

Xem dạng PDF

Gửi bài giải

Điểm: 800,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Tổ hợp là cách chọn một tập hợp con gồm ~k~ phần tử từ một tập hợp lớn gồm ~n~ phần tử, mà không quan tâm đến thứ tự sắp xếp của các phần tử đã chọn.

Bạn hãy tính giá trị của ~C(k, n)~ ~mod~ ~m~, tức là giá trị của tổ hợp chập ~k~ của ~m~ lấy theo modulo ~m~.

Yêu cầu: Tính ~C(k,n)~ ~mod~ ~m~ = ~\frac{n!}{k!*(k-n)!}~ ~mod~ ~m~.

Input

Nhập vào ba số tự nhiên ~k,n,m~ (~k,n,m \leq 2000~).

Output

Một số tự nhiên duy nhất, là giá trị ~C(k,n)~ ~mod~ ~m~.

Scoring

  • Subtask ~1~ ~(40\%)~: ~k,n,m \leq 20~;
  • Subtask ~2~ ~(60\%)~: ~k,n,m \leq 2000~.

Example input 1

5 2 10

Example output 1

0

Note 1

  • ~C(5,2)=\frac{5!}{2!*(5-2)!}=\frac{5!}{2!*3!}=10~.

  • ~C(5,2)~ ~mod~ ~10~ ~=~ ~10~ ~mod~ ~10~ ~=~ ~0~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.