Codeforces Round 285 (Div. 1) |
---|
Закончено |
После дня рождения у Миши осталось много больших чисел, разбросанных по всей комнате. Пришло время уборки, и Мише нужно сложить их в корзину. Это задание он поручил своему ручному роботу, который согласился выполнить его при определенных условиях. Перед тем, как робот положит очередное число x в корзину, Миша должен ответить на вопрос, можно ли выбрать из уже лежащих в корзине чисел одно или несколько, XOR-сумма которых будет равняться x.
В случае положительного ответа нужно также предъявить номера этих чисел. Если существует несколько вариантов выбора чисел, разрешается назвать любой. После ответа Миши робот кладет число в корзину.
Изначально корзина пуста. Каждому положенному в корзину числу присваивается очередной номер. Первое положенное в корзину число получает номер 0, второе число получает номер 1 и так далее.
Мише нужно срочно закончить уборку, но, к сожалению, у него плохо с арифметикой. Он просит вас ему помочь.
В первой строке находится число m (1 ≤ m ≤ 2000) — количество чисел, разбросанных по комнате.
В последующих m строках находятся сами числа, в том порядке, в котором робот кладет их в корзину. Каждое число — целое положительное, строго меньшее 10600 и не содержащее ведущих нулей.
Для каждого числа либо выведите в очередной строке 0, если число нельзя представить в виде XOR-суммы чисел, уже находящихся в корзине, либо выведите k — количество чисел в представлении и номера этих чисел. Числа разделяйте пробелами. Каждый номер может присутствовать в разложении не более одного раза.
7
7
6
5
4
3
2
1
0
0
0
3 0 1 2
2 1 2
2 0 2
2 0 1
2
5
5
0
1 0
XOR-суммой чисел называется результат побитового сложения чисел по модулю 2.
Название |
---|