eolymp
bolt
Try our new interface for solving problems
Məsələlər

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

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

На столе лежат карточки, на каждой из которых написано некоторое число. Кроме того, имеется довольно большая стопка чистых карточек. За один ход разрешается убрать со стола две карточки с одинаковыми числами, затем взять из стопки две чистые, написать на каждой из них по одному числу и положить на стол. Требуется узнать как за минимальное количество ходов сделать так, чтобы на столе были карточки, на которых написаны одинаковые числа. \InputFile В первой строке задается количество лежащих на карточек \textbf{N} (1 ≤ \textbf{N} ≤ \textbf{30000}), а во второй - \textbf{N} чисел, написанных на них. Все числа натуральные и не превышают \textbf{10^9}. \OutputFile В первой строке выведите минимальное количество операций \textbf{L}, необходимых для того, чтобы получить на столе все одинаковые карточки. В последующих \textbf{L} строках выведите по четыре числа, определяющие, что нужно делать в соответствующий ход: первое и второе - числа, записанные на убираемых карточках, третье и четвертое - числа, которые нужно написать на новых карточках. Если невозможно сделать так, чтобы на столе оказались все одинаковые карточки, выведите одно число \textbf{-1}.
Zaman məhdudiyyəti 1 saniyə
Yaddaşı istafadə məhdudiyyəti 64 MiB
Giriş verilənləri #1
3
1 2 2
Çıxış verilənləri #1
1
2 2 1 1
Müəllif В.Неспирный
Mənbə Зимние сборы в Харькове 2010 День 1