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

Задача . B. Восстановление перестановки после слияния


Перестановкой длины \(n\) называется последовательность целых чисел от \(1\) до \(n\) длины \(n\), содержащая каждое число ровно один раз. Например, \([1]\), \([4, 3, 5, 1, 2]\), \([3, 2, 1]\) являются перестановками, а \([1, 1]\), \([0, 1]\), \([2, 2, 1, 4]\) — нет.

Была задана перестановка \(p[1 \dots n]\). Она была слита сама с собой. Другими словами, были взяты две копии \(p\) и элементы второй копии \(p\) были вставлены в первую без изменения относительного порядка элементов. Результатом является последовательность длины \(2n\).

Например, если \(p=[3, 1, 2]\), то некоторыми возможными результатами являются: \([3, 1, 2, 3, 1, 2]\), \([3, 3, 1, 1, 2, 2]\), \([3, 1, 3, 1, 2, 2]\). Следующие последовательности не являются возможными результатами слияния: \([1, 3, 2, 1, 2, 3\)], [\(3, 1, 2, 3, 2, 1]\), \([3, 3, 1, 2, 2, 1]\).

Например, если \(p=[2, 1]\), то возможными результатами являются: \([2, 2, 1, 1]\), \([2, 1, 2, 1]\). Следующие последовательности не являются возможными результатами слияния: \([1, 1, 2, 2\)], [\(2, 1, 1, 2]\), \([1, 2, 2, 1]\).

Ваша задача — восстановить перестановку \(p\) по заданной результирующий последовательности \(a\). Гарантируется, что ответ существует и единственен.

Вам необходимо ответить на \(t\) независимых наборов тестовых данных.

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

Первая строка теста содержит одно целое число \(t\) (\(1 \le t \le 400\)) — количество наборов тестовых данных. Затем следуют \(t\) наборов тестовых данных.

Первая строка набора тестовых данных содержит одно целое число \(n\) (\(1 \le n \le 50\)) — длину перестановки. Вторая строка набора тестовых данных содержит \(2n\) целых чисел \(a_1, a_2, \dots, a_{2n}\) (\(1 \le a_i \le n\)), где \(a_i\)\(i\)-й элемент в \(a\). Гарантируется, что массив \(a\) представляет собой результат слияния некоторой перестановки \(p\) с такой же перестановкой \(p\).

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

Для каждого набора тестовых данных выведите ответ на него: \(n\) целых чисел \(p_1, p_2, \dots, p_n\) (\(1 \le p_i \le n\)), представляющих собой изначальную перестановку. Гарантируется, что ответ существует и единственен.


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

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

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