Bài tập nhóm
Nộp bài giải
Điểm:
8,00 (OI)
Giới hạn thời gian:
2.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Dạng bài
Ngôn ngữ cho phép
Ada, Algol, Assembly, Awk, C, C#, C++, D, Dart, Forth, Fortran, Go, Groovy, Java, Javascript, Kotlin, Lisp, Lua, Nim, ObjC, Pascal, Perl, PHP, Pike, Python, Racket, Ruby, Rust, Scheme, Scratch, Sed, TCL, Typescript, V, Zig
Lớp học có học sinh đang làm bài tập nhóm. Các học sinh sẽ chia thành các nhóm (mỗi nhóm có thể gồm một hoặc nhiều học sinh), làm phần việc của mình một cách độc lập, rồi cùng thảo luận kết quả.
Học sinh thứ cần phút để hoàn thành phần việc của mình. Nếu trong cùng một nhóm có học sinh nhanh và học sinh chậm thì sẽ rất khó chịu — định nghĩa độ chênh của một nhóm là trên các học sinh thuộc nhóm đó. Một nhóm chỉ có một học sinh có độ chênh bằng .
Đếm số cách chia học sinh thành các nhóm sao cho tổng độ chênh của tất cả các nhóm không vượt quá . Hai cách chia được xem là khác nhau nếu tồn tại một cặp học sinh ở cùng nhóm trong cách chia này nhưng ở khác nhóm trong cách chia kia.
In kết quả theo modulo .
Dữ liệu vào
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa số nguyên .
Dữ liệu ra
- Một số nguyên duy nhất — số cách chia nhóm hợp lệ, lấy modulo .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 2 4 5 |
3 | Ba cách chia hợp lệ: {1,2},{3} (chênh ); {1},{2,3} (chênh ); {1},{2},{3} (chênh ). |
| 4 3 7 8 9 10 |
13 | Có cách chia với tổng độ chênh . |
| 4 0 5 10 20 21 |
1 | Tổng độ chênh phải bằng , nên mỗi học sinh phải tạo thành nhóm riêng. |
Bình luận