В игре Higgs Pong каждый игрок может настроить графику под производительность
своего компьютера, включив или выключив некоторые графические опции.
Всего в игре n графических опций; при одновременном включении всех их
игра начинает тормозить даже на самых мощных компьютерах.
Когда создание игры подходило к концу, выяснилось, что пиарщик Вася уже
разместил на нескольких популярных игровых ресурсах информацию о том, что
игра Higgs Pong будет отлично работать на персональном компьютере Эверест.
Поразмыслив, разработчики купили один такой компьютер и поручили
тестировщику Ивану определить, при каких конфигурациях графики игра будет
приемлемо работать на нём.
Иван установил некоторую конфигурацию настроек графики, запустил игру,
поиграл в неё некоторое время, после чего записал в блокнот результат
тестирования. Далее Иван решил перед каждым следующим тестированием
изменять в предыдущей конфигурации ровно одну настройку (включать одну из
выключенных опций или выключать одну из
включенных). Иван записывал все конфигурации,
при которых проводилось тестирование, и ни одна конфигурация не была
протестирована им дважды. Через некоторое время Ивану показалось, что он
проверил уже достаточное количество конфигураций, и он пошёл рассказать
разработчикам о результатах тестирования.
Зная начальную и конечную
конфигурации настроек графики, определите, какое максимальное количество
конфигураций могло быть протестировано Иваном.
Исходные данные
В первой строке дано единственное целое число n — количество
графических опций (1 ≤ n ≤ 16). Во второй строке приведена
начальная конфигурация графики в виде списка целых чисел k a1 a2
... ak, где k — количество включенных опций, а ai — номера
этих опций (0 ≤ k ≤ n; 1 ≤ a1 < a2 < ... < ak ≤ n).
В третьей строке приведена конечная конфигурация графики в том же формате.
Начальная и конечная конфигурации различаются.
Результат
В первой строке выведите целое число m — максимальное количество
протестированных конфигураций, включая начальную и конечную. В следующих
m строках перечислите эти конфигурации в том порядке, в котором Иван
устанавливал их. Конфигурации следует выводить в том же формате, в котором
во входных данных были даны начальная и конечная конфигурации. Если задача
имеет несколько оптимальных решений, можно вывести любое из них.
Гарантируется, что хотя бы одно решение существует.
Пример
исходные данные | результат |
---|
2
0
2 1 2
| 3
0
1 2
2 1 2
|
Автор задачи: Идея — Александр Ипатов
Источник задачи: XVII Открытый чемпионат Урала по спортивному программированию (май, 2013)