Шоу фейерверков
시간 제한1초메모리 제한1024 MB
각각 전하 두 개를 담은 로켓 n개와 빈 로켓 하나가 주어질 때, 전하를 한 번에 하나씩 옮겨 2n번 이내의 이동으로 모든 로켓이 같은 종류의 전하 두 개를 담도록 만든다.
문제
На очередном осеннем фестивале планируется грандиозный фейерверк, во время которого должны запустить разноцветных ракет, каждая из которых взорвется в небе уникальным рисунком. Чтобы фейерверк получился максимально ярким, в каждую из ракет положили два заряда одинакового вида (один заряд лежит строго под другим, нельзя достать нижний, не достав сначала верхний).
Сегодня пиротехник решил проверить готовность ракет и с ужасом обнаружил, что какой-то шутник перемешал некоторые заряды местами --- теперь в некоторых ракетах находятся заряды разных видов, и при их запуске не получатся красивые узоры! Однако общий состав фейерверка не изменился --- во всех ракетах, вместе взятых, все еще по два заряда каждого из видов.
Теперь пиротехника ждет бессонная ночь, в течение которой он будет перекладывать заряды между ракетами, чтобы снова получить ракет, в каждой из которых по два заряда одного вида. Для этого в его распоряжении есть еще одна -я ракета, в которой не лежит ни одного заряда. За одно действие пиротехник
- выбирает ракету номер , в которой есть хотя бы один заряд;
- выбирает ракету номер , в которой строго меньше двух зарядов;
- перекладывает верхний заряд из ракеты наверх в ракету номер .
Поскольку пиротехник не хочет тратить на это слишком много времени, он просит вас помочь ему найти способ получить ракет с парами одинаковых зарядов за не более чем таких действий.
입력
В первой строке дано целое число --- количество ракет, заготовленных для фейерверка ().
В -й из следующий строк дано описание текущего состояния -й ракеты: через пробел даны и --- номера нижнего и верхнего зарядов, находящихся в ней (). Гарантируется, что каждое число от до встречается ровно дважды в описаниях ракет. Ракета номер изначально пустая.
출력
В первой строке выводите целое число --- количество действий, которое понадобится пиротехнику ().
В следующих строках выведите описания действий в порядке их следования. Каждое действие описывается номерами ракет (от до ), между которыми следует переложить верхний заряд. Нельзя класть в ракету более двух зарядов и нельзя перекладывать заряд из ракеты в нее же (зачем делать бесполезные действия?).
Обратите внимание, что от вас не требуется минимизировать количество действий --- достаточно просто добиться того, чтобы их было не больше .