PHÂN TÍCH SỐ (ANDMAX)
Xem dạng PDF
Gửi bài giải
Điểm:
0,50 (OI)
Giới hạn thời gian:
0.5s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Cho số nguyên dương ~n~. Hãy phân tích ~n~ thành tổng của ~3~ số nguyên không âm
$$n = a + b + c$$
sao cho giá trị ~a \,\&\, b \,\&\, c~ là lớn nhất có thể (~\&~ là phép AND bit).
Input
- Gồm một số nguyên dương ~n~ ~(n \le 10^{18})~.
Output
- In ra giá trị ~a \,\&\, b \,\&\, c~ lớn nhất tìm được.
Sample Input 1
21
Sample Output 1
7
Sample Input 2
23
Sample Output 2
5
Notes
Với ~n = 21~, cách phân tích tối ưu là ~21 = 7 + 7 + 7~, với sơ đồ phép AND bit như sau:
7 = 111
& 7 = 111
7 = 111
---------
111 = 7
Với ~n = 23~, cách phân tích tối ưu là ~23 = 13 + 5 + 5~, với sơ đồ phép AND bit như sau:
13 = 1101
& 5 = 0101
5 = 0101
----------
0101 = 5
Đang tải...