[Problem_of_Week] Dãy lạ mà quen

View as PDF

Submit solution

Points: 1.00
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem type

[Bài 5 trong chuỗi bài Mỗi tuần một bài toán 2025]

Các coder có thể xem thông tin thêm tại đây: Thông tin về contest

Xét phép biến đổi ~f~ tác động lên một xâu nhị phân: biến mỗi số ~0, 1~ trong đó thành ~1~, ~01~ cùng lúc. Xuất phát từ ~1~ (coi như ~s_1~), ký hiệu ~s_n~ là xâu sinh ra được sau khi tác động ~f~ lên xâu gốc tất cả ~n~ lần. Cụ thể là

~1 \to 01 \to 101 \to 01101 \to ...~

Chưa dừng lại ở đó, người ta còn ghép các xâu ~s_1, s_2, ...,s_n~ lại với nhau, tạo thành xâu ~t_n.~ Như vậy xâu ~t_4~ sẽ là ~10110101101~ tạo thành từ việc ghép 4 xâu đầu tiên trong dãy ~s_n~ ở trên.

Cho trước số nguyên dương ~n~, câu hỏi đặt ra là:

1) Có bao nhiêu số ~0~ trong xâu ~t_n~?

2) Trong các xâu ~t~ thì số ~0~ thứ ~n~ nằm ở vị trí bao nhiêu?

Input

Số nguyên dương ~n~ duy nhất với ~1 \le n \le 10^{10}~.

Output

Câu trả lời cho hai câu hỏi trên, kết quả có thể ra lớn nên lấy dư khi chia cho ~10^9+7.~

Sample input 1

1

Sample output 1

0 2

Sample input 2

4

Sample output 2

4 10

Comments

Please read the guidelines before commenting.


There are no comments at the moment.