eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач

Ним

Ним - это игра для \textbf{2}-х игроков с несколькими кучками камешков. Игроки по очереди делают ходы, забирая один или несколько камушков из одной кучки. Игра заканчивается когда забран последний камешек, и игрок, забравший его, объявляется победителем. Учитывая заданную позицию в игре Ним, Ваша задача состоит в нахождении количества выигрышных в ней ходов. Позиция в Ним называется "проигрышной", если после любого хода первого игрока он в результате проигрывает, при условии, что оба игрока придерживаются наилучшей стратегии. А "выигрышный ход" - это ход, после которого для второго игрока позиция становится проигрышной. Существует знаменитая теорема, которая классифицирует все проигрышные позиции. Предположим, в некоторой позиции игры Ним задано \textbf{n} кучек, соответственно содержащих \textbf{k_1}, \textbf{k_2}, …, \textbf{k_n} камешков; из такой позиции существует в точности \textbf{k_1} + \textbf{k_2} + … + \textbf{k_n} всевозможных ходов. Запишем все заданные значения \textbf{k_i} в двоичной системе счисления (системе с основанием \textbf{2}). Позиция Ним является проигрышной тогда и только тогда, когда в такой записи количество единиц в каждом разряде четно. Иными словами, позиция проигрышна тогда и только тогда, когда исключающее "\textbf{ИЛИ}" (\textbf{xor}) по всем кучкам \textbf{k_i} равно \textbf{0}. Рассмотрим три кучки, количество камешков в которых соответственно равно \textbf{k_1} = \textbf{7}, \textbf{k_2} = \textbf{11}, и \textbf{k_3} = \textbf{13}. В двоичной записи эти значения имеют такой вид: \begin{verbatim} 11110111101\end{verbatim}В этой записи в одном из столбиков присутствует нечетное количество единиц, следовательно эта позиция не проигрышная. Предположим, что мы изменили кучку \textbf{k_3} до \textbf{12} камешков. После этого количество единиц в каждом двоичном разряде стало четным, следовательно такая позиция Ним стала проигрышной. Выигрышным ходом будет любой ход, приводящий к проигрышной для соперника позиции, следовательно для позиции \textbf{k_1} = \textbf{7}, \textbf{k_2} = \textbf{11}, и \textbf{k_3} = \textbf{13} выигрышным будет любой ход, удаляющий третью единицу в любой из строк последнего столбика двоичной записи чисел. Очевидно, что таких ходов существует всего три, при которых удаляется любая из нечетных единиц в последнем разряде. \InputFile Входные данные содержат несколько тестов, каждый из которых начинается со строки, содержащей количество кучек с камешками \textbf{n} (\textbf{1} ≤ \textbf{n} ≤ \textbf{1000}). В следующей строке содержится \textbf{n} положительных чисел, \textbf{1} ≤ \textbf{k_i} ≤ \textbf{1000000000}, количество камешков в соответствующей кучке. Строка, содержащая значение \textbf{n} = \textbf{0}, является признаком окончания входных данных и не должна обрабатываться. \OutputFile Для каждого заданного теста вывести в отдельной строке количество выигрышных для данной позиции ходов.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3
7 11 13
2
1000000000 1000000000
0
Выходные данные #1
3
0