SP3412 SAMER08H - Higgs Boson
题目描述
自从一百年前首次探测到希格斯玻色子以来,粒子物理学已经在所有高中成为一门普及的主流学科。当然,孩子们非常喜欢用他们的便携式粒子加速器制造微小的黑洞,并向朋友和同学炫耀。虽然这些便携式加速器实际上有能力制造出能吞噬整个星球的大黑洞,但为了避免这种不良后果,它们都被编程为在不可能出现这种情况时才会发射粒子。
你的孙女正试图用她的便携加速器套件,来创造她自己的黑洞。这个套件由两个小型粒子加速器组成,每个加速器可以发射一个大小为玻色子的粒子。两个粒子同时发射,当它们碰撞时就会产生黑洞。然而,你的孙女不清楚她需要等待多长时间才能看到粒子碰撞。好在每个加速器能预测粒子的轨迹,并在其显示器上显示四个整数值,称为 $A$、$B$、$C$ 和 $D$。你可以将这些数值代入以下两个公式中:
$$ r = At + B \quad \theta = Ct + D $$
以用极坐标计算粒子的轨迹。半径 $r$ 用距离单位表示,角度 $\theta$ 用度数表示,时间 $t$ 则以时间单位来衡量,通常以不可约分数表述。你的孙女知道,在极坐标中,一个点有无数种表示形式。通常,点 $(r, \theta)$ 可以被表示为 $(r, \theta \pm k \times 360^\circ)$ 或 $(-r, \theta \pm (2k + 1) \times 180^\circ)$,其中 $k$ 是任意整数。而原点 ($r = 0$) 则可以表示为 $(0, \theta)$,无论 $\theta$ 是多少。
根据每个粒子加速器提供的这些参数,你的孙女要判断两个粒子是否会碰撞,以及碰撞会在什么时候发生。如果两个粒子发生碰撞,则之后的轨迹无法预测,因此我们只需要考虑第一次可能的碰撞。
虽然你的孙女非常聪慧,而且对粒子物理有很深的理解,但她不太懂编程,于是便在她祖父或祖母的 ICPC 笔记本中寻求帮助(别忘了,她可是你的孙女!)。幸运的是,你的笔记本中确实有一条笔记,上面写着你在 2008 年的 ICPC 南美区域赛上撰写了这个代码(更具体来说,就是这场比赛)。
输入格式
输入包含若干测试用例,每一行代表一个。每个测试用例包含八个整数,用空格分隔:$A_1$、$B_1$、$C_1$、$D_1$、$A_2$、$B_2$、$C_2$、$D_2$。前四个数值 ($A_1, B_1, C_1, D_1$) 由第一个粒子加速器显示,后四个数值 ($A_2, B_2, C_2, D_2$) 则属于第二个粒子加速器。当输入中出现 $A_1 = B_1 = C_1 = D_1 = A_2 = B_2 = C_2 = D_2 = 0$ 时,代表输入结束,这种情况不应被处理,因为如果此时发射粒子将会产生大黑洞。请注意,数字 0 也是允许的输入值。
输出格式
对于每个测试用例,输出两段用空格分隔的非负整数,分别为 $t_a$ 和 $t_b$。如果没有碰撞可能,则 $t_a = t_b = 0$;否则,$t_a / t_b$ 应为表示最早碰撞时间的不可约分数。即便结果是整数,仍需将分母输出为 1。
说明/提示
$$ -10^4 \le A_1, B_1, C_1, D_1, A_2, B_2, C_2, D_2 \le 10^4 $$
**本翻译由 AI 自动生成**