#P1593. Radar Scopes
Radar Scopes
本题没有可用的提交语言。
描述
你被聘请加入一个软件开发团队,负责编写一套新的空中交通管制系统。这套新软件的一项功能是自动验证目标飞机仪表的运行状况,并向管制员发出有关处于危险状态、刚刚起飞或可能坠毁飞机的警报。你需要编写此功能的原型。
你的程序会接收一系列场景数据,每个场景包含两次雷达扫描信息。每次雷达扫描会发现0到100架飞机。每次扫描到飞机时,数据采集系统会记录飞机的方位角、与雷达的距离(单位:英里),还会从飞机获取应答机编码和地速(单位:英里/小时,实际上是经过风修正后的空速)。根据这两次雷达扫描的数据,你的程序需要判断雷达范围内的飞机是否需要发出警报。
假设雷达的探测范围(覆盖区域半径)为10英里,两次扫描瞬间完成,间隔时间为5秒。
根据雷达和飞机的相关信息,你需要判断是否应该向管制员发出潜在问题的警报。
- 如果飞机两次显示的空速平均值与根据雷达扫描测量/计算出的空速相差超过10%,则发出“设备警报”。
- 如果第二次雷达扫描发现了第一次扫描中未出现的飞机,且该飞机显示的空速加上10%足以使其在两次扫描之间(沿最短路径)进入雷达探测范围,则发出“新闯入警报”。如果该速度不足以解释飞机之前就已在空中,则认为飞机是在雷达范围内刚刚起飞,发出“新起飞警报”。
- 如果第一次雷达扫描发现的飞机在第二次扫描中未出现,且该飞机显示的空速加上10%足以使其在两次扫描之间(沿最短路径)飞出雷达探测范围,则发出“飞出范围警报”。如果该速度不足以使飞机在两次扫描之间离开雷达探测范围,则发出“失去目标警报”,表示飞机可能在管制区域内降落或坠毁。
输入
每个场景的第一行包含一个整数(),表示第一次扫描中检测到的飞机数量。接下来的行,每行包含第一次扫描中检测到的一架飞机的详细信息,包括应答机编码、方位角、距离和地速。应答机编码是一个1到5位的整数,方位角、距离和地速均为格式为XXX.XXX
的实数,不足6位时在前后补零。
应答机编码()是一个全局唯一的整数,用于识别每架飞机,并在第一次和第二次扫描中匹配飞机。方位角()是从正北方向(顺时针向东)测量的角度,因此正东为90度,正南为180度,正西为270度。距离()是雷达与飞机之间的距离(雷达感应逻辑已去除因高度增加的距离)。地速()是飞机相对于雷达的移动速度(任意方向)。
第一次扫描飞机信息行之后,紧接着是一行包含一个整数(),表示第二次扫描中检测到的飞机数量。接下来的行,每行包含第二次扫描中检测到的一架飞机的详细信息。
如果还有其他场景,下一个场景将从下一行的开始。你需要读取并处理所有场景,直到文件结束。
输出
对于每个场景,你需要打印“Scenario # X”,其中是场景编号,第一个场景编号为1,后续场景编号依次递增。随后的每一行包含需要发出警报的飞机的报告,这些行应根据应答机编码进行排序。报告格式为:应答机编码在第1到5列右对齐,从第6列开始是以下警报信息之一:“ -- equipment warning”、“ -- new intrusion”、“ -- new aloft”、“ -- domain exited”或“ -- domain loss”(必须严格按照上述字符串中的空格和连字符进行打印)。对于不需要发出警报的飞机,不打印任何消息。
每个场景处理完后,打印一个空行。
输入数据1
4
222 060.111 007.600 095.000
1496 203.122 009.444 598.991
111 000.000 005.100 999.999
013 333.333 006.711 188.448
4
111 001.000 003.713 999.999
777 263.122 009.933 477.633
333 083.014 004.300 127.122
222 040.713 009.813 098.125
输出数据1
Scenario # 1
013 -- domain loss
222 -- equipment warning
333 -- new aloft
777 -- new intrusion
1496 -- domain exited
来源
美国中南部1995年