#P2354. Titanic

    ID: 1355 传统题 1000ms 256MiB 尝试: 11 已通过: 1 难度: 10 上传者: 标签>计算几何Ural Collegiate Programming Contest 1999

Titanic

题目描述

这是一个历史事实:在传奇的“泰坦尼克号”航行期间,无线电报机曾发出66次关于冰山危险的警告。每条电报消息都描述了发现冰山的位置。前55条警告被传递给了船长,而第66条在深夜到达,电报操作员没有注意到其中提到的坐标与船只当前位置非常接近。

请编写一个程序,用于警告操作员冰山的危险!

输入格式

输入消息的格式如下:

Message #<n>.

Received at <HH>:<MM>:<SS>. 

Current ship's coordinates are 

<X1>^<X2>'<X3>" <NL/SL> 

and <Y1>^<Y2>'<Y3>" <EL/WL>.

An iceberg was noticed at 

<A1>^<A2>'<A3>" <NL/SL> 

and <B1>^<B2>'<B3>" <EL/WL>.

===

其中:
在这里,<n><n> 是一个正整数,<HH>:<MM>:<SS><HH>:<MM>:<SS> 是消息接收的时间,<X1><X2><X3>"<NL/SL><X1>^\wedge<X2>'<X3>" <NL/SL><Y1><Y2><Y3>"<EL/WL><Y1>^\wedge<Y2>'<Y3>" <EL/WL> 表示“北纬(南纬)X1X1X2X2X3X3 秒和东经(西经)Y1Y1Y2Y2Y3Y3 秒”。

输出格式

程序应输出以下格式的消息:

The distance to the iceberg: <s> miles.

其中 <s> 是船只与冰山之间的距离(即球面上两点之间的最短路径长度),并保留22位小数。如果该距离 小于(但不等于)100100英里,则额外输出一行:

DANGER!

示例输入 1

Message #513.
Received at 22:30:11.
Current ship's coordinates are
41^46'00" NL
and 50^14'00" WL.
An iceberg was noticed at
41^14'11" NL
and 51^09'00" WL.
===

示例输出 1

The distance to the iceberg: 52.04 miles.
DANGER!

提示

  • 为简化计算,假设地球是一个直径为68756875英里的理想球体,且完全被水覆盖。
  • 输入文件的换行方式与示例一致。
  • 船只和冰山的坐标范围符合地理坐标的常规范围:
    • 纬度(NL/SL):009090度(含)。
    • 经度(EL/WL):00180180度(含)。

来源

Ural Collegiate Programming Contest 1999