CF1276E Four Stones

题目描述

初始有四块石头分别放在数轴的 $a_1,a_2,a_3,a_4$ 四个整点上(可能在某一个点上有多块石头),每一次操作中你可以选择两块不同的石头 $(a_x,a_y)(1 \leq x,y \leq 4 , x \neq y)$ 将 $a_x$ 变为 $2a_y - a_x$。 给出四个目标位置 $b_1,b_2,b_3,b_4$(不一定两两不同),试构造一个操作序列满足: - 操作结束后,存在一个排列 $p_1,p_2,p_3,p_4$ 满足 $a_{p_i} = b_i$; - 操作过程中不存在任何一个石头的位置的绝对值超过 $10^{18}$; - 你不需要最小化操作序列长度,但是你需要保证操作序列长度 $\leq 1000$。 题目保证如果存在一组操作序列满足第一个条件,则一定存在一组操作序列满足以上所有条件。

输入格式

第一行四个整数 $a_1,a_2,a_3,a_4$ 表示石头的初始位置,第二行四个整数 $b_1,b_2,b_3,b_4$ 表示目标位置,所有输入的绝对值 $\leq 10^9$。

输出格式

如果不存在这样的操作序列输出 `-1`,否则第一行输出一个整数 $k(0 \leq k \leq 1000)$ 表示你给出的操作序列长度,接下来 $k$ 行每行两个正整数 $x,y(x\neq y)$ 描述这一次操作。要求每次操作时 $x,y$ 位置上至少有一个石头,且操作后的位置 $2y-x$ 的绝对值 $\le 10^{18}$。 如果有多组解,输出任意一种即可。