SP2946 ECLIPSE - Eclipse
题目描述
时常,我们会在新闻中听到即将发生日食或月食的消息。日食有悠久的历史,可以追溯到公元前。天文学家非常关注全日食,因为它们为观测日冕提供了难得的机会。
当两个天体与一颗恒星几乎在一条直线上,并且其中一个天体的影子影响到另一个天体,导致后者部分或全部变暗时,就会发生日食现象。
我们的任务是预测下一次日食何时可能发生。图1中,你可以看到两个标记区域:本影是完全黑暗的区域,一个天体在该区域将经历全日食;半影是部分黑暗的区域,在该区域的天体会经历部分日食。
在这个任务中,你会获得一颗恒星和两个天体的大小和位置。你的任务是判断第一个天体是否会在第二个天体上形成日食,以及这是全日食还是部分日食。此外,还需判断整个天体是否会被完全遮蔽。如果一个天体的部分区域经历全日食,而整个天体至少处于部分日食状态,我们只关注全日食的那部分。
假设我们的太阳系是一个缩小的模型,太阳的中心位于原点 (0, 0, 0),半径是 700;月亮的位置是 (49900, 1000, 149700),半径为 2;地球的位置是 (50000, 1000, 150000),半径为 7。在图1中,太阳是左边的恒星,月亮是右边较小的天体。地球的一部分位于黑色的本影区,因此会部分经历全日食。
- 保证任何两个天体之间的距离至少为 1 单位。
- 将任何天体沿任意方向移动 1 单位后,结果不会改变。
输入格式
每个测试用例由三行组成,每行描述一个天体的大小和位置。第一行包含四个空格分隔的整数 $x_s$, $y_s$, $z_s$, 和 $r_s$,表示恒星的中心位置 $(x_s, y_s, z_s)$ 和半径 $r_s$。接下来的两行以相同格式描述两个天体。
测试用例紧随其后,直到输入中出现 -1,表示输入结束。
输出格式
针对每个测试用例,输出描述该情形的日食类型的一行。如果第二个天体正处于日食状态,请根据以下情况输出:
- `Entire total solar eclipse`:整体处于全日食
- `Part total solar eclipse`:部分处于全日食
- `Entire partial solar eclipse`:整体处于部分日食
- `Part partial solar eclipse`:部分处于部分日食
如果没有日食发生,则输出 `No solar eclipse`。
**本翻译由 AI 自动生成**