РЕШИТЬ Алиса учится работать с двоичными числами. Она уже поняла, что число в двоичной записи получается в несколько раз длиннее, чем в десятичной. А еще она поняла, что нули писать дольше чем единицы. И теперь ее любимые числа — это те, двоичная запись которых содержит как можно больше единиц. Алисе дали задание — выбрать одно произвольное число из заданного закрытого интервала [a;b][a;b] и перевести его в двоичную запись. И теперь Алиса просит, чтобы вы написали программу, которая найдет в этом интервале число, двоичная запись которого содержит наибольшее количество единиц. Если таких чисел будет несколько, то Алиса будет рада любому из них.

Формат входных данных
На вход через пробел подаются два натуральных числа aa и bb. При этом 1\leq a\leq b \leq 10^{18}1≤a≤b≤10
18
. Обратите внимание, что для хранения таких чисел в программе на С++ вам потребуется тип long long. В программе на PascalABC такой тип называется Int64.

Формат выходных данных
Программа должна вывести одно целое число из заданного диапазона, двоичная запись которого содержит наибольшее количество единиц. Само число следует выводить в десятичной записи.

Методика проверки и пояснение к тесту
Программа проверяется на 20 тестах. Прохождение каждого теста оценивается в При этом в первых пяти тестах 1\leq a\leq b \leq 10001≤a≤b≤1000. Тесты из условия задачи при проверке не используется.

Sample Input 1:
150 200

Sample Output 1:
191

Sample Input 2:
1 255

Sample Output 2:
255

Sample Input 3:
127 200

Sample Output 3:
127

Ирина15123010 Ирина15123010    3   17.10.2021 18:55    2

Другие вопросы по теме Информатика