eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Получить одинаковые

Получить одинаковые

На столе лежат карточки, на каждой из которых написано некоторое число. Кроме того, имеется довольно большая стопка чистых карточек. За один ход разрешается убрать со стола две карточки с одинаковыми числами, затем взять из стопки две чистые, написать на каждой из них по одному числу и положить на стол. Требуется узнать как за минимальное количество ходов сделать так, чтобы на столе были карточки, на которых написаны одинаковые числа. \InputFile В первой строке задается количество лежащих на карточек \textbf{N} (1 ≤ \textbf{N} ≤ \textbf{30000}), а во второй - \textbf{N} чисел, написанных на них. Все числа натуральные и не превышают \textbf{10^9}. \OutputFile В первой строке выведите минимальное количество операций \textbf{L}, необходимых для того, чтобы получить на столе все одинаковые карточки. В последующих \textbf{L} строках выведите по четыре числа, определяющие, что нужно делать в соответствующий ход: первое и второе - числа, записанные на убираемых карточках, третье и четвертое - числа, которые нужно написать на новых карточках. Если невозможно сделать так, чтобы на столе оказались все одинаковые карточки, выведите одно число \textbf{-1}.
Лимит времени 1 секунда
Лимит использования памяти 64 MiB
Входные данные #1
3
1 2 2
Выходные данные #1
1
2 2 1 1
Автор В.Неспирный
Источник Зимние сборы в Харькове 2010 День 1