#422. 冰雪聪明

冰雪聪明

冰雪聪明

题目背景

琪露诺是生活在雾之湖的妖精。

有一天,琪露诺在湖中发现了两块特别的石头。作为天才的琪露诺于是猜测,通过这两块石头确定一个地点,那个地点肯定埋藏着宝藏!

两块石头怎么确定坐标呢?琪露诺于是想,两块石头与指明的宝藏地点一定能构成一个特别的三角形——直角三角形!

身为笨蛋的琪露诺当然搞不清怎么样才能构成一个直角三角形了。甚至可怜的她都不知道这样的位置可以有无限个。不过为了满足探险欲,你还是要给她找到一个坐标位置,使得三个坐标可以形成直角三角形。

题目描述

雾之湖可以被看成一张巨大网格图,图上所有点的坐标均为整数,并且 x,yx,y 坐标的范围均为 [109,109][-10^9,10^9]。琪露诺在其中发现两块奇怪的石头,它们的坐标分别记为 A,BA,B。你需要找到网格图上的第三个点 CC,使得 ABCABC 三点可以构成直角三角形。如果有多解,输出任意一组即可。

注意:由于 CC 在网格图上,因此 CC 的坐标同样必须是整数。

如图所示,A,BA,B 的坐标分别为 (0,0)(0,0)(4,2)(4,2)。图中给出了三个可能的 CC

  • C1C_1 坐标为 (1,3)(1,3),组成橙色的三角形,AC1B=90°\angle AC_1B=90\degree
  • C2C_2 坐标为 (1,2)(-1,2),组成黄色的三角形,C2AB=90°\angle C_2AB=90\degree
  • C3C_3 坐标为 (5,0)(5,0),组成红色的三角形,ABC3=90°\angle ABC_3=90\degree

数据保证输入的 A,BA,B 不会重合。

输入格式

共一行,四个整数 x1,y1,x2,y2x_1,y_1,x_2,y_2,表示 A,BA,B 的坐标 (x1,y1),(x2,y2)(x_1,y_1),(x_2,y_2)

输出格式

共一行,两个整数 x3,y3x_3,y_3,表示你找到的点 CC 的坐标。你需要保证 0x3,y31090\le |x_3|,|y_3|\le 10^9。若有多解输出任意一组即可。

样例 #1

样例输入 #1

0 0 4 2

样例输出 #1

1 3

提示

数据范围及约定

  • 对于 30%30\% 的数据,保证 0x1,y1,x2,y220\le |x_1|,|y_1|,|x_2|,|y_2|\le 2
  • 对于 50%50\% 的数据,保证 0x1,y1,x2,y2100\le |x_1|,|y_1|,|x_2|,|y_2|\le 10
  • 对于 70%70\% 的数据,保证 0x1,y1,x2,y21030\le |x_1|,|y_1|,|x_2|,|y_2|\le 10^3
  • 对于全部数据,保证 0x1,y1,x2,y21090\le |x_1|,|y_1|,|x_2|,|y_2|\le 10^9,并且 A,BA,B 两点不会重叠。

upd 2023.1.14\text{upd 2023.1.14}:新增加 55Hack\text{Hack} 数据。