Mã bài:
countbit1
Điểm:
1 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
512M
Dữ liệu vào:
stdin
Dữ liệu ra:
stdout
Tác giả:
Dạng bài
Khi đến lớp, Tèo được thầy giáo dạy về cách chuyển đổi số thập phân sang hệ nhị phân. Thầy giáo đã giao Tèo một bài tập về nhà rất thú vị:
Cho một dãy gồm ~n~ số nguyên dương, mỗi số nguyên dương có giá trị ~a_i~. Hãy tìm số nguyên dương trong dãy có biểu diễn dạng nhị phân chứa nhiều bit 1 nhất.
Hãy viết chương trình giúp Tèo giải quyết bài tập này nhé !
Lưu ý: Nếu có nhiều số có cùng số lượng bit 1 thì in ra số lớn nhất.
Dữ liệu
- Dòng đầu tiên chứa số nguyên dương ~n~ ~(1 \le n \le 10^6)~.
- Dòng thứ hai chứa dãy ~n~ số nguyên dương ~a_1, a_2, ..., a_n~ ~(1 \le a_i \le 10^9)~.
Kết quả
Một số nguyên dương duy nhất là kết quả của bài toán.
Ràng buộc
- Subtask ~1~ ~(60\%)~: ~n \le 10^4, a_i \le 10^4~
- Subtask ~2~ ~(40\%)~: Không có ràng buộc gì thêm.
Ví dụ
Dữ liệu
3
9 7 16
Kết quả
7
Giải thích
- ~9~ có biểu diễn nhị phân là ~1001~ ~\Rightarrow~ Có ~2~ bit ~1~.
- ~7~ có biểu diễn nhị phân là ~111~ ~\Rightarrow~ Có ~3~ bit ~1~.
- ~16~ có biểu diễn nhị phân là ~10000~ ~\Rightarrow~ Có ~1~ bit ~1~.
Vậy số có biểu diễn nhị phân chứa nhiều bit ~1~ nhất là số ~7~.
Bình luận