CF666D Chain Reaction

题目描述

你与伯兰的科学家团队有着密切的业务合作,他们正在和平利用核能领域进行研究。具体来说,他们发现,如果将四个纳米机器人放置在一块平板的表面上,在某些条件下能够引发强大的链式反应。 更准确地说,研究人员在平坦的板上引入了一个矩形的笛卡尔坐标系,并选择了四个不同的整数坐标点,作为最初布置机器人的位置。接下来,每个机器人会被分配一个平行于坐标轴的方向(上、下、左或右)。随后,每个机器人会沿自己的方向移动一个整数距离(不同机器人可以移动不同的距离)。只有当机器人最终位于一个正面积、边平行于坐标轴的正方形四个角上,并且每个角上各有一个机器人时,链式反应才会发生。如果机器人们用时越短来到指定位置,反应会更强。可以假设机器人移动速度为单位速度。换言之,所有机器人的最大移动距离越小,则反应越强。 科学家们已经为多块板准备好了机器人初始放置方案。现在,他们请求你为每个机器人分配一个移动方向,使得所有机器人中移动距离的最大值最小。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 50$),表示板的数量。 接下来有 $t$ 组数据,每组数据包含四行,每行两个整数 $x_i, y_i$($-10^{8} \leq x_i, y_i \leq 10^{8}$),表示第 $i$ 个机器人的坐标。所有机器人的位置各不相同。 注意,尽管题目允许一个测试用例中包含多个板,但在 hack 别人的提交时,仅允许每次测试一块板,即 hack 测试中的 $t$ 必须等于 $1$。

输出格式

对每块板分别输出答案。每个答案首先输出一行整数。如果科学家们的设计有误,即这些纳米机器人无法形成所需的正方形,则输出 $-1$。否则,输出在所有机器人中最大移动距离的最小值。 如果存在解,接下来的四行分别输出两个整数,表示每个机器人移动后的坐标。机器人顺序需与输入顺序一致。 若有多种方案,可以输出任意一种。

说明/提示

由 ChatGPT 5 翻译