CF1468F Full Turn
题目描述
平面上有 $n$ 个人。第 $i$ 个人位于点 $(x_i, y_i)$,最初朝向点 $(u_i, v_i)$。
在同一时刻,所有人将以相同的角速度同步顺时针旋转。他们会旋转,直到完成一次完整的 $360$ 度转动。
当且仅当某一时刻,第 $A$ 个人正好朝向第 $B$ 个人的位置,同时第 $B$ 个人也正好朝向第 $A$ 个人的位置时,称 $A$ 和 $B$ 两人“目光相遇”。如果 $A$ 和 $B$ 之间有其他人 $C$,也不会阻碍 $A$ 和 $B$ 的目光相遇。一个人可以同时与多个人目光相遇。
请计算在旋转过程中(包括初始时刻),有多少对人会至少有一次目光相遇。
输入格式
第一行包含一个整数 $t$($1 \le t \le 10^4$),表示测试用例的数量。
每个测试用例的第一行包含一个整数 $n$($1 \le n \le 10^5$),表示人数。接下来的 $n$ 行,每行包含四个用空格分隔的整数 $x_i, y_i, u_i, v_i$($|x_i|, |y_i|, |u_i|, |v_i| \le 10^9$;$x_i \ne u_i$ 或 $y_i \ne v_i$),其中 $(x_i, y_i)$ 表示第 $i$ 个人的位置,$(u_i, v_i)$ 表示第 $i$ 个人最初注视的点。每个人的位置在同一测试用例中都是唯一的。
所有测试用例中 $n$ 的总和不超过 $10^5$。
输出格式
对于每个测试用例,输出一个整数,表示在旋转过程中至少有一次目光相遇的人的对数(包括初始时刻)。
说明/提示
由 ChatGPT 4.1 翻译