CF1612A.Distance

传统题 时间 2000 ms 内存 256 MiB 3 尝试 1 已通过 1 标签

Distance

题目描述

我们定义两点 p1p_1(坐标为 (x1,y1)(x_1, y_1))和 p2p_2(坐标为 (x2,y2)(x_2, y_2))之间的曼哈顿距离为 d(p1,p2)=x1x2+y1y2d(p_1, p_2) = |x_1 - x_2| + |y_1 - y_2|。例如,坐标为 (1,3)(1, 3)(4,2)(4, 2) 的两点之间的距离为 14+32=4|1 - 4| + |3 - 2| = 4

现在给定两个点 AABB,其中 AA 的坐标为 (0,0)(0, 0)BB 的坐标为 (x,y)(x, y)

你的目标是找到一个点 CC,使得:

  • CC 的两个坐标都是非负整数;
  • d(A,C)=d(A,B)2d(A, C) = \dfrac{d(A, B)}{2}(不进行任何取整);
  • d(B,C)=d(A,B)2d(B, C) = \dfrac{d(A, B)}{2}(不进行任何取整)。

请找出满足上述条件的任意一个点 CC,或者报告不存在这样的点。

输入格式

第一行包含一个整数 tt1t30001 \le t \le 3000),表示测试用例的数量。

每个测试用例包含一行,包含两个整数 xxyy0x,y500 \le x, y \le 50),表示点 BB 的坐标。

输出格式

对于每个测试用例,输出一行答案:

  • 如果不存在满足条件的点 CC,输出“-1 -1”;
  • 否则,输出两个不超过 10610^6 的非负整数,表示满足条件的点 CC 的坐标。如果有多个答案,输出任意一个即可。可以证明,如果存在满足条件的点,一定存在坐标不超过 10610^6 的解。

说明/提示

以下是样例中部分测试用例的解释:

  • 第一个测试用例中,点 BB 的坐标为 (49,3)(49, 3)。如果点 CC 的坐标为 (23,3)(23, 3),则 AABB 的距离为 490+30=52|49 - 0| + |3 - 0| = 52AACC 的距离为 230+30=26|23 - 0| + |3 - 0| = 26BBCC 的距离为 2349+33=26|23 - 49| + |3 - 3| = 26
  • 第二个测试用例中,点 BB 的坐标为 (2,50)(2, 50)。如果点 CC 的坐标为 (1,25)(1, 25),则 AABB 的距离为 20+500=52|2 - 0| + |50 - 0| = 52AACC 的距离为 10+250=26|1 - 0| + |25 - 0| = 26BBCC 的距离为 12+2550=26|1 - 2| + |25 - 50| = 26
  • 第三和第四个测试用例,可以证明不存在满足条件的整数坐标点。
  • 第五个测试用例中,点 BB 的坐标为 (42,0)(42, 0)。如果点 CC 的坐标为 (21,0)(21, 0),则 AABB 的距离为 420+00=42|42 - 0| + |0 - 0| = 42AACC 的距离为 210+00=21|21 - 0| + |0 - 0| = 21BBCC 的距离为 2142+00=21|21 - 42| + |0 - 0| = 21

由 ChatGPT 4.1 翻译

样例

10
49 3
2 50
13 0
0 41
42 0
0 36
13 37
42 16
42 13
0 0
23 3
1 25
-1 -1
-1 -1
21 0
0 18
13 12
25 4
-1 -1
0 0

在线编程 IDE

建议全屏模式获得最佳体验