Сложная функция
(Время: 1 сек. Память: 16 Мб Сложность: 42%)
На уроке информатики Вася изучил новую булеву функцию - исключающее или. Эта функция работает почти так же, как и обычное или, но для двух единичных битов результат равен нулю:
Аналогично определяется и более сложная функция - побитовое исключающее или. Для её подсчета числа записываются в столбик, и считается исключающее или для каждого бита. Побитовое исключающее или обозначается знаком ⊕. Пример:
Васе понравилась эта функция и он посчитал исключающее или своих любимых чисел - L и R. Получив удивительные результаты, он решил провести масштабное вычисление. Вася взял все пары чисел (i, j), такие, что L ≤ i < j ≤ R, и посчитал побитовое исключающее или для таких пар. А после этого он выписал все получившиеся числа, и посчитал и для них побитовое исключающее или.
У Васи на это ушло довольно много времени. Сможете ли вы справиться быстрее?
Входные данные
В единственной строке входного файла INPUT.TXT записаны через пробел два целых числа L и R (0 ≤ L < R ≤ 1018).
Выходные данные
В единственную строку выходного файла OUTPUT.TXT нужно вывести число, которое получилось у Васи.
Примеры
№ | INPUT.TXT | OUTPUT.TXT |
1 | 5 8 | 12 |
2 | 0 1 | 1 |
Пояснения к примерам
В первом примере побитовое исключающее или для пар: 5 ⊕ 6 = 3, 5 ⊕ 7 = 2, 5 ⊕ 8 = 13, 6 ⊕ 7 = 1, 6 ⊕ 8 = 14, 7 ⊕ 8 = 15.
Побитовое исключающее или результатов: 3 ⊕ 2 ⊕ 13 ⊕ 1 ⊕ 14 ⊕ 15 = 12.
Для отправки решения задачи необходимо зарегистрироваться и авторизоваться!
|