EduBrick

N. Некрасивые на отрезке

3000 мс · 256 МБ · всё или ничего

Как классная задача N, но посчитать надо количество некрасивых чисел на отрезке [l,r][l, r].

Решето то же самое, размером до rr: отмечаем значения m+popcount(m)m + \mathrm{popcount}(m) и считаем неотмеченные, но только те, что попали в отрезок.

Перебирать mm нужно от единицы, а не от ll: красивое число из отрезка может получаться из числа левее него. Впрочем, далеко влево ходить не надо — достаточно m≥l−60m \ge l - 60, потому что popcount(m)≤60\mathrm{popcount}(m) \le 60.

Это наблюдение позволяет обойтись памятью на длину отрезка, а не на весь rr, — полезно, если отрезок короткий, а правая граница большая.

Формат ввода

Одна строка содержит числа ll и rr (1≤l≤r≤1071 \le l \le r \le 10^7).

Формат вывода

Одно число — количество некрасивых чисел на отрезке.

Примеры

ввод
1 17
вывод
5
ввод
15 15
вывод
1
Войдите, чтобы отправлять решения.