Khối lập phương
View as PDF
Hình ảnh tạo bởi ChatGPT
Nhân dịp sinh nhật, Dona được bố mẹ tặng một bộ gồm khối lập phương kích thước \(1×1×1\) đầy màu sắc, mỗi khối có một màu sắc khác nhau, khối thứ
có màu
. Trong bộ đồ chơi còn có một dải băng kích thước \(1×k\) dùng để đặt các khối lập phương vào đó. Dải băng có thể đặt tối đa
khối lập phương, tuy nhiên Dona muốn nhiều hơn thế. Dona còn nghĩ ra cách đặt các khối chồng lên nhau, cụ thể cách đặt như sau:
- Ban đầu, Dona lựa chọn một trong
vị trí để đặt khối lập phương đầu tiên vào.
- Từ khối thứ
đến khối thứ
, Dona đặt khối
tại vị trí ngay bên cạnh liền kề (trái hoặc phải) khối đã đặt trước đó (khối
). Nếu hai bên trái hoặc phải của khối
đã được đặt, Dona sẽ đặt khối thứ
lên trên khối ở vị trí trái hoặc phải đó. Chú ý rằng không có giới hạn cho độ cao của việc xếp khối chồng lên nhau.
Sau khi đặt xong, Dona nhìn dải ma trận theo hướng từ trên xuống dưới theo góc nhìn thẳng đứng và thấy trên dải băng có rất nhiều màu sắc từ các khối lập phương. Dãy màu được biểu thị bởi các số nguyên là màu sắc của khối lập phương, nếu tại vị trí nào không đặt khối thì xem như mang màu . Dona muốn biết có tổng cộng bao nhiêu dải màu sắc khác nhau có thể tạo thành.
Input
- Dòng duy nhất chứa hai số nguyên
và
là số lượng khối lập phương và kích thước dải băng.
Output
- In ra số lượng dải màu sắc khác nhau có thể tạo thành, kết quả chia lấy dư cho
.
Samples
Sample Input 1
4 3
Sample Output 1
8
Sample Input 2
3 5
Sample Output 2
14
Sample Input 3
100 200
Sample Output 3
410783331
Scoring
- Subtask
với
số điểm:
- Subtask
với
số điểm:
- Subtask
với
số điểm:
- Subtask
với
số điểm: Không có ràng buộc gì thêm
Clarification
- Trong ví dụ đầu tiên, Dona có thể tạo thành các dãy màu
.
- Trong ví dụ thứ hai, Dona có thể tạo dãy màu
bằng cách đặt khối đầu tiên tại vị trí
, đặt khối thứ hai tại vị trí
và đặt khối thứ ba tại vị trí
(đặt lên trên khối đầu tiên).
Comments