HackDream Green 01-F: Nhất sinh vạn vật

Xem PDF

Nộp bài

Điểm: 100 (thành phần)
Thời gian: 1.0s
Python 2 3.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Một dãy số vô hạn có thể được tạo ra chỉ nhờ phần tử đầu tiên bằng cách sử dụng 3 quy tắc sau:

  • Quy tắc ~1~: Phần tử đầu tiên của dãy số của giá trị là ~1~.
  • Quy tắc ~2~: Với mỗi phần tử đã biết, ta có thể tính được giá trị của phần tử có chỉ số gấp đôi nó bằng cách cộng thêm ~1~.
  • Quy tắc ~3~: Nếu có phần tử nào chưa được tính bằng quy tắc ~2~, thì giá trị của nó sẽ bằng tổng của hai phần tử ở ngay bên trái và bên phải của nó.

Yêu cầu

Cho số nguyên dương ~n~. Tính giá trị của phần tử ở vị trí ~n~ của dãy trên.

Input

Một dòng duy nhất chứa số nguyên dương ~n~ ~(1≤n≤10^{12})~.

Output

Một dòng duy nhất chứa kết quả bài toán.

Sample Input 1

7

Sample Output 1

10

Sample Input 2

8

Sample Output 2

4

Subtask

  • Có 50% số test ứng với 50% số điểm có ~1≤n≤10^6~;
  • 50% số test còn lại tương ứng với 50% số điểm không có giới hạn gì thêm.

Bình luận đầu tiên

Bình luận

Không có bình luận nào.