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:
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