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

Задача . D. XOR-конструктив


Даны \(n-1\) целых чисел \(a_1, a_2, \dots, a_{n-1}\).

Ваша задача — построить массив \(b_1, b_2, \dots, b_n\) такой, что:

  • каждое целое число от \(0\) до \(n-1\) встречается в \(b\) ровно один раз;
  • для каждого \(i\) от \(1\) до \(n-1\), \(b_i \oplus b_{i+1} = a_i\) (где \(\oplus\) обозначает побитовое исключающее ИЛИ).
Входные данные

Первая строка содержит одно целое число \(n\) (\(2 \le n \le 2 \cdot 10^5\)).

Вторая строка содержит \(n-1\) целых чисел \(a_1, a_2, \dots, a_{n-1}\) (\(0 \le a_i \le 2n\)).

Дополнительное ограничение на входные данные: возможно построить как минимум один допустимый массив \(b\) для заданной последовательности \(a\).

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

Выведите \(n\) целых чисел \(b_1, b_2, \dots, b_n\). Если существует несколько массивов, подходящих под условие задачи, вы можете вывести любой из них.


Примеры
Входные данныеВыходные данные
1 4
2 1 2
0 2 3 1
2 6
1 6 1 4 1
2 3 5 4 0 1

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

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