Очистка океана
Просмотр в формате PDFВ океане на разных участках ведётся экологический мониторинг. Каждый участок пронумерован целым числом от l до r. Номер участка кодирует набор экологических признаков: каждый бит в двоичной записи отвечает за наличие некоторого типа загрязнения, а значение 1 означает, что этот признак обнаружен.
Экологи хотят выбрать такой набор участков из отрезка [l, r], чтобы после побитового AND номеров всех выбранных участков результат был не равен нулю. Это будет означать, что у всех выбранных участков есть хотя бы один общий экологический признак.
Разрешается удалить несколько участков из отрезка. Нужно определить минимальное количество участков, которые необходимо удалить, чтобы побитовое AND всех оставшихся номеров стало ненулевым.
Для каждого запроса выведите минимальное число удалений.
Формат входных данных
В первой строке записано одно целое число t — количество запросов.
В каждой из следующих t строк записаны два целых числа l и r — границы отрезка участков.
Формат выходных данных
Для каждого запроса выведите одно целое число — минимальное количество участков, которые нужно удалить.
Ограничения
1 <= t <= 10^41 <= l <= r <= 2 * 10^5
Пояснение
Чтобы побитовое AND нескольких чисел было ненулевым, должен существовать хотя бы один бит, который равен 1 у всех оставшихся чисел. Значит, для некоторого бита нужно оставить все участки, у которых этот бит равен 1, а остальные удалить. Среди всех битов нужно выбрать тот, для которого таких участков больше всего.
Пример
Входные данные
4
1 2
2 8
4 5
4 6
Выходные данные
1
3
0
0
Комментарии