Задача №115368. Два массива

Участникам, использующим язык Python3 , рекомендуется отправлять решения на проверку с использованием интерпретатора PyPy3 .

Даны два массива \(a\) и \(b\) длины \(n\). Можно сколько угодно раз выполнить следующую операцию:

  • Выбрать \(i\) от \(1\) до \(n\) и поменять местами \(a_i\) и \(b_i\).

Пусть \(f(c)\) — количество различных чисел в массиве \(c\). Найдите максимальное значение \(f(a) + f(b)\). Также требуется восстановить массивы \(a\) и \(b\) после выполнения операций.

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

Первая строка содержит единственное целое \(n\) (\(1 \le n \le 100\,000\)) — размер массивов.

Вторая строка содержит \(n\) целых чисел \(a_1\), \(\ldots\), \(a_n\) (\(1 \le a_i \le 2 \cdot n\)) — элементы массива \(a\).

Третья строка содержит \(n\) целых чисел \(b_1\), \(\ldots\), \(b_n\) (\(1 \le b_i \le 2 \cdot n\)) — элементы массива \(b\).

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

В первой строке выведите максимальное значение \(f(a) + f(b)\).

Во второй строке выведите \(n\) целых чисел — элементы массива \(a\) после выполнения операций.

В третьей строке выведите \(n\) целых чисел — элементы массива \(b\) после выполнения операций.

Система оценки

Тесты к этой задаче состоят из примеров и \(6\) групп. Баллы за каждую группу ставятся только при прохождении всех тестов группы и всех тестов некоторых из предыдущих групп.

Доп. ограничения
Группа Баллы \(n\) \(a, b\) Необх. группы Комментарий
0 0 Тесты из условия.
1 17 \(n \le 18\) 0 0
2 10 \(a_i \le 2\) и \(b_i \le 2\)
3 15 \(a_i = i\) или \(b_i = i\)
4 15 Каждое число встречается не более 2 раз суммарно
5 15 Каждое число суммарно встречается чётное количество раз
6 28 0 – 5

Примечание

В первом примере после применения трёх операций с \(i=2\), \(i=4\) и \(i=5\) получаем \(a = [1, 3, 4, 5, 2]\) и \(b = [1, 2, 3, 4, 4]\). После этого \(f(a) + f(b) = 5 + 4 = 9\). Можно показать, что нельзя добиться большего ответа.

Во втором примере после применения необходимых обменов получим: \(\)f([2, 3, 4, 2, 1, 5, 6]) + f([1, 2, 3, 4, 5, 6, 5]) = 6 + 6 = 12\(\)

Примеры
Входные данные
5
1 2 4 4 4
1 3 3 5 2
Выходные данные
9
1 3 4 5 2 
1 2 3 4 4 
Входные данные
7
2 2 4 4 5 5 5
1 3 3 2 1 6 6
Выходные данные
12
2 3 4 2 1 5 6 
1 2 3 4 5 6 5 
Входные данные
7
12 3 3 4 5 6 4
1 2 13 8 10 13 7
Выходные данные
14
12 3 13 8 10 6 4 
1 2 3 4 5 13 7 
Сдать: для сдачи задач необходимо войти в систему