Олимпиадный тренинг

Задача . E. Четыре камня


Задача

Темы: Конструктив *3500

На бесконечной прямой расположено четыре камня в целочисленных координатах \(a_1, a_2, a_3, a_4\). Цель — переместить камни в позиции с координатами \(b_1, b_2, b_3, b_4\). Порядок камней не важен, то есть камень из любой позиции \(a_i\) может оказаться в любой из позиций \(b_j\), если в итоге каждая позиция содержит нужное количество камней (то есть, если координата \(x\) встречается \(k\) раз среди чисел \(b_1, \ldots, b_4\), в конце в позиции \(x\) должно быть ровно \(k\) камней).

Мы можем перемещать камни при помощи следующей операции: выбрать две различные позиции \(x\) и \(y\), в каждой из которых есть хотя бы один камень, и переместить один камень из \(x\) в \(2y - x\). Другими словами, операция перемещает один из камней в позицию, симметричную относительно другого камня. В любой момент разрешается помещать любое количество камней в одну и ту же позицию.

Найдите любую последовательность операций, приводящую к цели, или определите, что это невозможно. Ваша последовательность не обязана быть кратчайшей, но может содержать не более \(1000\) операций.

Входные данные

В первой строке записано четыре целых числа \(a_1, \ldots, a_4\) (\(-10^9 \leq a_i \leq 10^9\)) — исходные позиции камней. Любое количество камней могут находиться в одной точке.

Во второй строке записано четыре целых \(b_1, \ldots, b_4\) (\(-10^9 \leq b_i \leq 10^9\)) — необходимые позиции камней. Любое количество из этих позиций могут находится в одной точке.

Выходные данные

Если не существует последовательности операций, приводящей к цели, выведите одно число \(-1\). В противном случае, в первой строке выведите одно целое число \(k\) (\(0 \leq k \leq 1000\)) — количество операций в вашей последовательности. В следующих \(k\) строках опишите операции. \(i\)-я из этих строк должна содержать два целых числа \(x_i\) и \(y_i\) (\(x_i \neq y_i\)) — координата перемещаемого камня и координата центра симметрии для \(i\)-й операции соответственно.

Перед каждой операцией \(i\) в координатах \(x_i\) и \(y_i\) должно быть хотя бы по одному камню, и новая координата камня \(2y_i - x_i\) не должна превосходить \(10^{18}\) по абсолютной величине.

Если существует несколько подходящих последовательностей, выведите любую. Гарантируется, что если подходящая последовательность операций существует, то существует и последовательность, удовлетворяющая всем дополнительным ограничениям.


Примеры
Входные данныеВыходные данные
1 0 1 2 3
3 5 6 8
3
1 3
2 5
0 3
2 0 0 0 0
1 1 1 1
-1
3 0 0 0 1
0 1 0 1
-1

time 1000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя