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