Olympic VNU 2025 - Di chuyển
Xem dạng PDF
Gửi bài giải
Điểm:
33,00 (OI)
Giới hạn thời gian:
3.0s
Giới hạn bộ nhớ:
1G
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT
Cho ~n~ điểm trên trục Ox, điểm thứ ~i~ ở vị trí ~i~ trên trục Ox. Có một người đang đứng tại điểm ~0~.
Người này di chuyển theo quy tắc:
- Ở bước di chuyển đầu tiên, người này đứng ở điểm ~i~, cần di chuyển tới điểm ~j~ sao cho ~j > i~, và ~j - i~ là bội của ~k~.
- Ở bước di chuyển thứ hai, ~j - i~ phải là bội của ~k + 1~.
- ...
- Ở bước di chuyển thứ ~m~, ~j - i~ phải là bội của ~k + m - 1~.
Tính số cách đi của người đó từ điểm ~0~, đi đếm điểm ~i~, với mọi ~i~ từ ~1~ tới ~n~.
INPUT
Dòng duy nhất chứa hai số nguyên dương ~n~ và ~k~ (~1 \le n, k \le 2 \times 10^5~), là số điểm và số ~k~ trong đề bài.
OUTPUT
~n~ số nguyên dương, số thứ ~i~ là số cách di chuyển từ điểm ~0~ tới điểm ~i~.
Vì kết quả có thể rất lớn, hãy in ra phần dư của kết quả khi chia cho ~998244353~.
SAMPLE INPUT
5 1
SAMPLE OUTPUT
1 1 2 2 3
SUBTASKS
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~10~ | ~n \le 20~. |
| 2 | ~20~ | ~n \le 2000~. |
| 3 | ~30~ | ~n \le 2 \times 10^4~. |
| 4 | ~40~ | Không có ràng buộc gì thêm. |
Bình luận