JOI 2009 - Bingo

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 5.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Một cuộc thi lập trình có truyền thống tổ chức trò chơi bingo trong buổi giao lưu sau cuộc thi. Những tấm thẻ bingo dùng trong trò chơi này khá đặc biệt và phải thỏa mãn tất cả các điều kiện sau:

  • Mỗi thẻ gồm \(N\) hàng và \(N\) cột. Mỗi ô chứa một số nguyên dương và tất cả \(N^2\) số trên thẻ đôi một khác nhau.
  • Mỗi số trên thẻ nằm trong khoảng từ \(1\) đến \(M\).
  • Tổng tất cả các số trên thẻ bằng \(S\).
  • Trong mỗi cột, các số tăng dần từ trên xuống dưới.
  • Số trong mỗi ô lớn hơn mọi số thuộc bất kỳ cột nào nằm bên trái cột chứa ô đó.

Ban tổ chức muốn làm nhiều thẻ thỏa mãn các điều kiện trên nhất có thể, nhưng không được làm hai thẻ giống hệt nhau.

Yêu cầu

Cho \(N\), \(M\), \(S\). Hãy tính số thẻ bingo khác nhau có thể tạo ra và in phần dư của số đó khi chia cho \(100\,000\).

Dữ liệu vào

Đọc từ đầu vào chuẩn một dòng chứa ba số nguyên dương \(N\), \(M\), \(S\), cách nhau bởi dấu cách. Trong đó, \(N\) là kích thước thẻ, \(M\) là giới hạn trên của các số trên thẻ, và \(S\) là tổng các số trên thẻ.

Dữ liệu ra

Ghi ra đầu ra chuẩn một số nguyên, là phần dư của số thẻ bingo khác nhau có thể tạo ra khi chia cho \(100\,000\).

Ràng buộc

  • \(1\le N\le7\).
  • \(1\le M\le2\,000\).
  • \(1\le S\le3\,000\).
  • Với mỗi bộ dữ liệu, luôn có ít nhất một thẻ bingo thỏa mãn các điều kiện.

Chấm điểm

Bài có \(4\) bộ dữ liệu chấm, mỗi bộ \(5\) điểm, tổng cộng \(20\) điểm.

Ví dụ

Ví dụ 1

Input
3 9 45
Output
1

Ví dụ 2

Input
3 100 50
Output
7

Ví dụ 3

Input
5 50 685
Output
74501

\(642\,499\,974\,501\) thẻ khác nhau thỏa mãn dữ liệu của ví dụ \(3\). Phần dư khi chia số này cho \(100\,000\)\(74501\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: