Codeforces Round 751 (Div. 1) |
---|
Закончено |
Вам задан массив $$$a_1, a_2, \ldots, a_n$$$, состоящий из неотрицательных целых чисел.
Определим операцию «уничтожения» с целочисленным параметром $$$k$$$ ($$$1 \leq k \leq n$$$) следующим образом:
Найдите все значения $$$k$$$, для которых с помощью конечного количества операций уничтожения с параметром $$$k$$$ можно сделать все элементы массива $$$a$$$ равными $$$0$$$. Можно показать, что для любого массива $$$a$$$ существует хотя бы одно подходящее $$$k$$$.
Обратите внимание, что вы сначала выбираете значение $$$k$$$ и только потом применяете операции уничтожения с первоначально выбранным параметром $$$k$$$.
Во входных данных находятся несколько наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \leq t \leq 10^4$$$) — количество наборов входных данных. Далее следуют сами наборы входных данных.
В первой строке каждого набора задано одно целое число $$$n$$$ ($$$1 \leq n \leq 200\,000$$$) — длина массива $$$a$$$.
В следующей строке каждого набора задано $$$n$$$ целых чисел $$$a_1, a_2, \ldots, a_n$$$ ($$$0 \leq a_i < 2^{30}$$$) — массив $$$a$$$.
Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$200\,000$$$.
Для каждого набора входных данных выведите все значения $$$k$$$, для которых с помощью операций уничтожения (с заданным параметром $$$k$$$) можно сделать все элементы массива $$$a$$$ равными $$$0$$$.
Выводите их в возрастающем порядке.
5 4 4 4 4 4 4 13 7 25 19 6 3 5 3 1 7 1 1 1 5 0 0 0 0 0
1 2 4 1 2 1 1 1 2 3 4 5
В первом наборе входных данных:
Во втором наборе входных данных при $$$k = 2$$$ мы можем сделать следующие операции уничтожения:
Формальное определение побитового «И»
Определим операцию побитового «И» ($$$\&$$$). Пусть даны два целых неотрицательных числа $$$x$$$ и $$$y$$$, рассмотрим их двоичные записи (возможно с ведущими нулями): $$$x_k \dots x_2 x_1 x_0$$$ и $$$y_k \dots y_2 y_1 y_0$$$. Здесь $$$x_i$$$ это $$$i$$$-й бит числа $$$x$$$, а $$$y_i$$$ это $$$i$$$-й бит числа $$$y$$$. Пусть $$$r = x ~ \& ~ y$$$ — результат операции $$$\&$$$ над числами $$$x$$$ и $$$y$$$. Тогда двоичной записью $$$r$$$ будет $$$r_k \dots r_2 r_1 r_0$$$, где:
$$$$$$ r_i = \begin{cases} 1, ~ \text{if} ~ x_i = 1 ~ \text{and} ~ y_i = 1 \\ 0, ~ \text{if} ~ x_i = 0 ~ \text{or} ~ y_i = 0 \end{cases} $$$$$$
Название |
---|