print2080. Пляшущие биты

printПляшущие биты

Ограничения: время – 2s/4s, память – 256MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод copy
Послать решение Blockly Посылки Темы Где Обсудить (0)

Уважаемый мистер Шерлок Холмс. Я нигде не могу найти Бубенчика.
Пожалуйста, пожалуйста, пожалуйста, не могли бы вы помочь?
     Маленькая девочка
Дело Бубенчика привлекло Шерлока куда больше, чем дело Генри Найта. Поэтому он в тайне от всех на секретной военной базе Баскервиль нашел компьютер, где есть полное досье на Бубенчика. Но, к сожалению, компьютер оказался хитро запаролен.
Компьютер показал Шерлоку два числа `L` и `R`. Пароль же представляет собой набор различных троек чисел `x`, `y` и `z` таких, что
`L\ ≤\ x\ ,\ y\ ,\ z\ ≤\ R`
и
`((x\ |\ y)\ ==\ (y` `⊕` `z))`
где `|` – битовая операция ИЛИ, `⊕` – битовая операция исключающее ИЛИ (xor, сложение по модулю 2).
У Шерлока нет устройства, которое вычислило бы все такие тройки автоматически. Помогите Шерлоку найти хотя бы количество таких троек.
В единственной строке входного файла заданы два числа `L` и `R` (`1\ ≤\ L\ ≤\ R\ ≤\ 5*10^8`) – числа, которые показал компьютер.
В единственной строке выведите количество различных троек чисел, удоволетворяющих заданным условиям.

Пример ввода

3 7 

Пример вывода

6
Обратите внимание на то, что тройки, отличающиеся только порядком этих трех чисел, являютcя различными.
Источник: neerc.ifmo.ru/school
loading