QOJ.ac

QOJ

时间限制: 1.0 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#17170. 欧拉线

统计

给定平面上的一条直线,请构造一个顶点为整点的三角形,使得其欧拉线与给定的直线重合。

我们来回顾一下基本定义。设 $\triangle ABC$ 是平面上的一个非退化三角形,$M_A$、$M_B$ 和 $M_C$ 分别是边 $BC$、$AC$ 和 $AB$ 的中点,$s_A$、$s_B$ 和 $s_C$ 分别是边 $BC$、$AC$ 和 $AB$ 的垂直平分线。形式化地,$s_A$ 是过点 $M_A$ 且垂直于直线 $BC$ 的直线;直线 $s_B$ 和 $s_C$ 的定义类似。由中学几何可知,直线 $s_A$、$s_B$ 和 $s_C$ 交于单一点 $O$。点 $O$ 具有一个显著的性质,即它到三角形的三个顶点 $A$、$B$ 和 $C$ 的距离相等。以 $O$ 为圆心、$OA$ 为半径的圆称为 $\triangle ABC$ 的外接圆,它是平面上唯一通过该三角形所有三个顶点的圆。点 $O$ 被称为 $\triangle ABC$ 的外心。

设 $H_A$、$H_B$ 和 $H_C$ 分别表示顶点 $A$、$B$ 和 $C$ 在直线 $BC$、$AC$ 和 $AB$ 上的正交投影。线段 $AH_A$、$BH_B$ 和 $CH_C$ 称为 $\triangle ABC$ 的高。由中学几何可知,直线 $AH_A$、$BH_B$ 和 $CH_C$ 交于单一点 $H$,称为 $\triangle ABC$ 的垂心。在锐角或直角三角形中,$H$ 位于高线段本身上,而在钝角三角形中,它位于高线段的延长线上。

线段 $AM_A$、$BM_B$ 和 $CM_C$ 称为三角形的中线。由中学几何可知,中线交于单一点 $G$,称为 $\triangle ABC$ 的重心。三角形 $M_A M_B M_C$ 称为 $\triangle ABC$ 的中点三角形。上述概念同样适用于它:因此,点 $G$ 是中点三角形的重心,而 $O$ 是中点三角形的垂心。$\triangle M_A M_B M_C$ 的外接圆通过 $M_A$、$M_B$、$M_C$、$H_A$、$H_B$、$H_C$ 以及线段 $AH$、$BH$、$CH$ 的中点,因此它被称为 $\triangle ABC$ 的九点圆,其圆心记为 $O_9$。

在等边三角形中,点 $O$、$H$、$G$ 和 $O_9$ 重合。在任何其他三角形中,它们两两不同,但它们共线,这条直线称为 $\triangle ABC$ 的欧拉线。这四个点在欧拉线上的排列顺序也是已知的:$O_9$ 总是线段 $OH$ 的中点,且点 $G$ 位于线段 $OH$ 上,并将线段 $OH$ 分成 $2 : 1$ 的比例(其中 $G$ 到 $O$ 的距离是 $G$ 到 $H$ 的距离的一半,即 $OG : GH = 1 : 2$)。

你需要构造一个顶点为整点的非退化三角形 $ABC$,使得 $O$、$H$、$G$ 和 $O_9$ 落在给定的直线上,或者报告这是不可能的。

输入格式

第一行包含一个整数 $t$,表示测试用例的数量($1 \le t \le 5 \cdot 10^5$)。

在每个测试用例描述的唯一一行中,包含三个整数 $k$、$\ell$ 和 $m$,表示直线的系数($-10^3 \le k, \ell, m \le 10^3$)。该直线定义为满足方程 $kx + \ell y + m = 0$ 的点 $(x, y)$ 的集合。保证 $k^2 + \ell^2 > 0$。

输出格式

对于每个测试用例,输出六个整数 $A_x, A_y, B_x, B_y, C_x, C_y$,表示一个非退化三角形的顶点坐标。必须满足条件 $-10^6 \le A_x, A_y, B_x, B_y, C_x, C_y \le 10^6$。$\triangle ABC$ 的欧拉线方程必须为 $kx + \ell y + m = 0$。如果不存在这样的三角形,则输出六个由空格分隔的零。

在评测机提供的每个测试用例中,均保证如果存在至少一个顶点为整点且具有给定欧拉线的三角形 $ABC$,则也存在一个满足条件 $-10^6 \le A_x, A_y, B_x, B_y, C_x, C_y \le 10^6$ 的三角形。

样例

输入样例 1

8
0 1 0
1 0 1
-1 1 -2
3 4 8
1 1 1
8 4 2
27 9 3
-544 862 12

输出样例 1

-1 -1 -1 1 0 0
-2 -2 -2 2 1 -1
-2 -1 -2 2 0 1
-4 -3 2 -4 2 1
-1 -1 -1 0 0 0
0 0 0 0 0 0
-4 0 3 -2 0 4
5811 -1154 -3261 -2058 -3713 2478

说明

我们没有显式要求 $\triangle ABC$ 为非等边三角形,因为不可能构造出顶点均为整点的等边三角形。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1221EditorialOpen题解jiangly2026-03-06 01:31:36View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.