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