Codeforces Round 951 (Div. 2) |
---|
Закончено |
Вам даны два различных целых неотрицательных числа $$$x$$$ и $$$y$$$. Рассмотрим две бесконечные последовательности $$$a_1, a_2, a_3, \ldots$$$ и $$$b_1, b_2, b_3, \ldots$$$, где
Здесь $$$x \oplus y$$$ обозначает операцию побитового исключающего ИЛИ чисел $$$x$$$ и $$$y$$$.
Например, при $$$x = 6$$$, первые $$$8$$$ элементов последовательности $$$a$$$ будут выглядеть следующим образом: $$$[7, 4, 5, 2, 3, 0, 1, 14, \ldots]$$$. Обратите внимание, что индексы элементов начинаются с $$$1$$$.
Ваша задача — найти длину наибольшего общего подотрезка$$$^\dagger$$$ последовательностей $$$a$$$ и $$$b$$$. Другими словами, найдите такое максимальное целое число $$$m$$$, что $$$a_i = b_j, a_{i + 1} = b_{j + 1}, \ldots, a_{i + m - 1} = b_{j + m - 1}$$$ для некоторых $$$i, j \ge 1$$$.
$$$^\dagger$$$Подотрезком последовательности $$$p$$$ называется последовательность $$$p_l,p_{l+1},\ldots,p_r$$$, где $$$1 \le l \le r$$$.
Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит единственное целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Единственная строка каждого набора входных данных содержит два целых числа $$$x$$$ и $$$y$$$ ($$$0 \le x, y \le 10^9, x \neq y$$$) — параметры последовательностей.
Для каждого набора входных данных выведите одно целое число — длину наибольшего общего подотрезка.
40 112 457 37316560849 14570961
1 8 4 33554432
В первом наборе входных данных первые $$$7$$$ элементов последовательностей $$$a$$$ и $$$b$$$ следующие:
$$$a = [1, 2, 3, 4, 5, 6, 7,\ldots]$$$
$$$b = [0, 3, 2, 5, 4, 7, 6,\ldots]$$$
Можно показать, что не существуют такого целого положительного числа $$$k$$$, что отрезок $$$[k, k + 1]$$$ встречается в $$$b$$$ как подотрезок. Поэтому ответ равен $$$1$$$.
В третьем наборе входных данных первые $$$20$$$ элементов последовательностей $$$a$$$ и $$$b$$$ следующие:
$$$a = [56, 59, 58, 61, 60, 63, 62, 49, 48, 51, 50, 53, 52, 55, 54, \textbf{41, 40, 43, 42}, 45, \ldots]$$$
$$$b = [36, 39, 38, 33, 32, 35, 34, 45, 44, 47, 46, \textbf{41, 40, 43, 42}, 53, 52, 55, 54, 49, \ldots]$$$
Можно показать, что одним из наибольших общих подотрезков является подотрезок $$$[41, 40, 43, 42]$$$, длина которого равна $$$4$$$.
Название |
---|