Notice
Chào mừng bạn đến với OREOJ


Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Tác giả:
Nguồn bài:
Croatian Open Competition in Informatics (COCI)
Dạng bài
Ngôn ngữ cho phép
Assembly, AWK, C, C++, C++20, Go, Java, Kotlin, Pascal, Perl, PyPy, Python, Rust, Scratch, SED, Text

Mẹ Antonija kiếm được ~n~ euro và phải tiêu hết số tiền đó càng sớm càng tốt. Bà có thể giữ lại cho mình một phần, nhưng phần còn lại phải được chia đều cho hai con trai trong một số ngày.

Trước hết, bà chọn một số nguyên không âm ~k~ với ~0 \le k \le n~ để giữ lại cho bản thân. Phần còn lại là ~n-k~ euro sẽ được chia cho hai con trong ~d~ ngày.

Mẹ Antonija cũng có thể không chia đồng nào cho hai con; đó là trường hợp ~n = k~ và ~d = 0~.

Nếu có chia tiền, thì ở mỗi ngày hai người con đều nhận cùng một số euro. Nếu một người con nhận ~x~ euro trong một ngày nào đó, thì người còn lại cũng nhận ~x~ euro trong ngày ấy, và ~x~ phải là một số nguyên dương. Tổng cộng hai người con cũng phải nhận bằng nhau.

Hai cách chia được xem là khác nhau nếu thỏa ít nhất một trong các điều kiện sau:

  • số tiền giữ lại ~k~ khác nhau,
  • số ngày ~d~ khác nhau,
  • tồn tại ít nhất một ngày mà số tiền hai con nhận theo hai cách chia là khác nhau.

Hãy tính số cách khác nhau mà mẹ Antonija có thể chia tiền. Vì đáp án có thể rất lớn, hãy in kết quả theo modulo ~10^9 + 7~.

Input

Dòng đầu tiên chứa một số nguyên dương ~n~, là tổng số euro mẹ Antonija có.

Output

In ra một số nguyên duy nhất là số cách chia tiền hợp lệ.

Ràng buộc

  • ~1 \le n \le 10^{18}~

Chấm điểm

  • Subtask 1 (12 điểm): ~n \le 10~
  • Subtask 2 (17 điểm): ~n \le 1000~
  • Subtask 3 (36 điểm): ~n \le 10^6~
  • Subtask 4 (5 điểm): Không có ràng buộc bổ sung.

Sample Input 1

4

Sample Output 1

4

Sample Input 2

5

Sample Output 2

4

Sample Input 3

793

Sample Output 3

137435472

Giải thích

  • Ví dụ 1:
    • Nếu ~k = 4~, mẹ giữ toàn bộ tiền, nên chỉ có đúng ~1~ cách là không chia gì cho hai con.
    • Nếu ~k = 2~, còn lại ~2~ euro; cách duy nhất là ~d = 1~, mỗi người con nhận ~1~ euro.
    • Nếu ~k = 0~, còn lại ~4~ euro; có ~2~ cách hợp lệ: hoặc ~d = 1~ và mỗi người con nhận ~2~ euro, hoặc ~d = 2~ và mỗi ngày mỗi người con nhận ~1~ euro.
    • Nếu ~k = 1~ hoặc ~k = 3~, không có cách chia hợp lệ nào. Tổng cộng có ~1 + 1 + 2 = 4~ cách.

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.