Bài toán của Nazar
Đề bài
Mô tả
Xét hai tập số vô hạn: tập số lẻ dương và tập số chẵn dương .
Ta viết ra một dãy số theo từng giai đoạn:
- Giai đoạn : viết số đầu tiên từ tập lẻ.
- Giai đoạn : viết số tiếp theo từ tập chẵn.
- Giai đoạn : viết số tiếp theo từ tập lẻ.
- Giai đoạn : viết số tiếp theo từ tập chẵn.
- ...
Nói cách khác, ở mỗi giai đoạn (kể từ giai đoạn thứ hai) ta viết ra số lượng số gấp đôi giai đoạn trước, và luân phiên đổi tập được lấy số. Mỗi tập được lấy số một cách liên tục: mỗi khi đến lượt một tập, ta lấy tiếp những số chưa dùng của tập đó theo thứ tự tăng dần.
Mười số đầu tiên của dãy là: .
Đánh số các số trong dãy bắt đầu từ . Cho hai số nguyên và , hãy tính tổng các số ở những vị trí từ đến . Kết quả có thể rất lớn, hãy in ra phần dư khi chia cho .
Dữ liệu vào
Một dòng chứa hai số nguyên và .
Dữ liệu ra
In ra một số nguyên duy nhất — tổng các số ở vị trí từ đến , lấy phần dư khi chia cho .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 3 | 7 | Ba số đầu tiên của dãy là ; tổng bằng . |
| 5 14 | 105 | Các số ở vị trí từ đến là ; tổng bằng . |
| 88005553535 99999999999 | 761141116 | Tổng rất lớn nên chỉ in phần dư khi chia cho . |
Bình luận