Xoá số luân phiên

Xem dạng PDF

Gửi bài giải

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

Nguồn bài:
Tuyển tập đề thi HSG
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Cho dãy số gồm các số nguyên dương từ ~1~ đến ~N~, viết theo thứ tự tăng dần. Ta thực hiện liên tiếp các lượt xoá như sau:

  • Lượt 1: đếm từ trái sang phải và xoá các số ở vị trí lẻ trong dãy hiện tại.
  • Lượt 2: trên dãy còn lại, đếm từ phải sang trái và xoá các số ở vị trí chẵn.
  • Lượt 3: trên dãy còn lại, đếm từ trái sang phải và xoá các số ở vị trí lẻ.
  • Lượt 4: trên dãy còn lại, đếm từ phải sang trái và xoá các số ở vị trí chẵn.
  • ...
  • Cứ tiếp tục quy luật như vậy cho đến khi trong dãy chỉ còn lại đúng ~1~ số.

Yêu cầu: Hãy xác định số cuối cùng còn lại trong dãy.

Dữ liệu nhập vào từ bàn phím

Gồm một dòng duy nhất chứa số tự nhiên ~N~ <= 10^12.

Kết quả ghi ra màn hình

In ra một số tự nhiên duy nhất là số cuối cùng còn lại.

Ví dụ

Input
10
Output
6
Giải thích VD:
  • Ban đầu, dãy a là 1, 2, 3, 4, 5, 6, 7 ,8, 9, 10
  • Lượt 1 xoá các số 1, 3, 5, 7, 9; dãy a còn lại là 2, 4, 6, 8, 10
  • Lượt 2 xoá các số: 8, 4; dãy a thành 2, 6, 10
  • Lượt 3 xoá các số: 2, 10; dãy a còn 1 số 6

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.