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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.