Олимпиадный тренинг

Задача . D. Девочка и максимальный XOR


Девочка очень любит задачи про битовые операции. Вот одна из них.

Вам дано два целых числа l и r. Рассмотрим значения величины для всех пар целых чисел a и b (l ≤ a ≤ b ≤ r). Ваша задача — найти максимальное значение, среди всех рассматриваемых.

Выражение обозначает применение операции побитового исключающего или к числам x и y. Данная операция есть во всех современных языках программирования, например, в языке C++ и Java она обозначается «^», в Pascal — «xor».

Входные данные

В единственной строке записаны разделенные пробелом целые числа l и r (1 ≤ l ≤ r ≤ 1018).

Пожалуйста, не используйте спецификатор %lld для чтения или записи 64-х битовых чисел на С++. Рекомендуется использовать потоки cin, cout или спецификатор %I64d.

Выходные данные

В единственной строке выведите целое число — максимальное значение для всех пар чисел a, b (l ≤ a ≤ b ≤ r).


Примеры
Входные данныеВыходные данные
1 1 2
3
2 8 16
31
3 1 1
0

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python5
Комментарий учителя