#P2571. Global Roaming

Global Roaming

中文题面:

描述

当今移动通信的很大一部分依赖于能否直接观测到卫星。因此,通信服务提供商必须清楚其服务覆盖的区域。

你的任务是识别那些能直接观测到特定卫星的位置,即该卫星必须位于地平线上方。

为简化问题,可假设地球是一个完美球体,半径为63786378公里(山脉的影响将在未来版本中加入……)。卫星被视为地球表面上方的一个点状物体。

输入:

输入文件包含多个测试用例。每个测试用例的第一行包含待检查的位置数量nn,随后是卫星的位置信息:

其纬度、经度(均以度为单位)以及距离地球表面的高度(以公里为单位)。

接下来的nn行每行描述地球表面的一个位置:

位置的标签(由少于6060个可打印的ASCII字符组成,不含空格),后跟其纬度和经度(均以度为单位)。输入以 n=0n=0 结束。

输出:

对于每个测试用例,按示例格式输出测试用例编号。然后输出从该位置可见卫星的所有位置标签,每个标签占一行,顺序与输入文件中的顺序一致。

每个测试用例输出后需空一行。

输入数据 1

3 20.0 -60.0 150000000.0
Ulm       48.406    10.002
Jakarta   -6.13     106.75
Honolulu  21.32    -157.83
2 48.4 10 0.5
Ulm       48.406    10.002
Honolulu  21.32    -157.83
0 0.0 0.0 0.0

输出数据 1

Test case 1:
Ulm
Honolulu

Test case 2:
Ulm

来源

ACM国际大学生程序设计竞赛(ACM-ICPC) 德国乌尔姆大学分站赛