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

Задача . C. Поездка на олимпиаду


В предстоящем году будет много командных олимпиад, поэтому преподавателям «Т-поколения» предстоит собрать команду из трех школьников для участия в них. Любые три школьника покажут достойный результат на любой командной олимпиаде. Но выиграть олимпиаду это еще пол дела, для начала нужно до нее добраться...

У каждого школьника есть самостоятельность, выражаемая целым числом. В «Т-поколении» есть по одному школьнику с самостоятельностями от \(l\) до \(r\) включительно. Для команды из трех школьников с самостоятельностями \(a\), \(b\) и \(c\) значение их командной самостоятельности равно \((a \oplus b) + (b \oplus c) + (a \oplus c)\), где \(\oplus\) обозначает операцию побитового исключающего ИЛИ.

Ваша задача — выбрать любую тройку школьников с максимально возможной командной самостоятельностью.

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

Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число \(t\) (\(1 \le t \le 10^4\)) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа \(l\) и \(r\) (\(0 \le l, r < 2^{30}\), \(r - l > 1\)) — минимальная и максимальная самостоятельности школьников.

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

Для каждого набора входных данных выведите три попарно различных целых числа \(a, b\) и \(c\), такие что \(l \le a, b, c \le r\) и значение выражения \((a \oplus b) + (b \oplus c) + (a \oplus c)\) максимально возможное. Если существует несколько троек с максимальным значением, можно вывести любую.

Примечание

В первом наборе входных данных единственная, с точностью до перестановки, подходящая тройка чисел (\(a, b, c\)) это (\(0, 1, 2\)).

Во втором наборе входных данных одна из подходящих троек это (\(8, 7, 1\)), \((8 \oplus 7) + (7 \oplus 1) + (8 \oplus 1) = 15 + 6 + 9 = 30\), можно показать, что \(30\) — максимально возможное значение \((a \oplus b) + (b \oplus c) + (a \oplus c)\) при \(0 \le a, b, c \le 8\).


Примеры
Входные данныеВыходные данные
1 8
0 2
0 8
1 3
6 22
128 137
69 98
115 127
0 1073741823
1 2 0
8 7 1
2 1 3
7 16 11
134 132 137
98 85 76
123 121 118
965321865 375544086 12551794

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

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