Đấu trường
Đề bài
Mô tả
Có đấu sĩ thi đấu trong đấu trường. Ban đầu đấu sĩ thứ có điểm sinh lực.
Trận đấu diễn ra qua nhiều vòng. Vào đầu mỗi vòng, mỗi đấu sĩ còn sống gây sát thương lên tất cả các đấu sĩ còn lại. Đòn đánh của tất cả đấu sĩ xảy ra đồng thời. Đấu sĩ nào có sinh lực nhỏ hơn vào cuối vòng thì bị loại (nói cách khác, nếu vào đầu vòng có đấu sĩ còn sống thì mỗi đấu sĩ chịu sát thương trong vòng đó).
Nếu sau một vòng nào đó chỉ còn đúng đấu sĩ sống sót thì đấu sĩ đó được tuyên bố là người chiến thắng. Ngược lại, không có ai chiến thắng.
Nhiệm vụ của bạn là đếm số cách chọn điểm sinh lực ban đầu cho từng đấu sĩ, với , sao cho trận đấu không có người chiến thắng. Kết quả có thể rất lớn, hãy in ra phần dư khi chia cho .
Hai cách được coi là khác nhau nếu có ít nhất một đấu sĩ có điểm sinh lực khác nhau. Ví dụ, và là hai cách khác nhau.
Dữ liệu vào
Một dòng duy nhất chứa hai số nguyên và .
Dữ liệu ra
In ra một số nguyên: số cách chọn điểm sinh lực ban đầu sao cho không có người chiến thắng, lấy phần dư khi chia cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 2 5 | 5 | Với đấu sĩ, cả hai gây sát thương lên nhau mỗi vòng. Không có người thắng khi và chỉ khi hai đấu sĩ có cùng sinh lực và cùng bị loại. Có cách: . |
| 3 3 | 15 | Có cách tổng cộng; trong số đó không cho ra người chiến thắng. |
| 5 4 | 1024 | Vì , ở vòng đầu mọi đấu sĩ đều chịu sát thương và bị loại đồng thời, nên mọi cách trong đều không có người thắng. |
| 13 37 | 976890680 |
Bình luận