#P1473. There's Treasure Everywhere!
There's Treasure Everywhere!
题目描述
寻找埋藏的宝藏其实很简单:你只需要一张地图!加勒比的海盗以他们巨额的埋藏宝藏和复杂的地图而闻名。这类地图通常这样描述:“从孤零零的棕榈树出发,朝森林走3步,然后朝小泉走17步,……最后朝巨石走6步。在此处挖掘,你将找到我的宝藏!” 大多数这类方向最终都可归结为朝8个主要罗盘方向(如图左所示)走指定步数。
显然,按地图路径行走可能会带你领略当地风景,但如果赶时间,通常有更快的方式:直接从起点走到宝藏埋藏点。例如,若路径是“北3步,东1步,北1步,东3步,南2步,西1步”(见图),则直线路径(图中虚线)只需约3.6步。
你的任务是编写程序,根据“传统”地图计算宝藏的位置和距离:给定一系列方向和步数,计算从原点出发的最终坐标及到原点的距离。
输入格式
输入包含若干行字符串,每行一个字符串,最多200字符。最后一行为“END”,表示输入结束。其余每行描述一张宝藏地图,格式如下:
- 描述由逗号分隔的“步数-方向”对组成,例如“3W”表示向西3步,“17NE”表示向东北17步。每个方向对格式为“长度(小于1000的正整数)+方向(N、NE、E、SE、S、SW、W、NW)”。
- 描述以英文句号(.)结尾,不含空格。
输出格式
对每个地图描述:
- 首先输出地图编号,如样例所示。
- 输出宝藏的绝对坐标,格式为“The treasure is located at (x,y).”。坐标系定义:x轴向东,y轴向北,起点为原点(0,0)。
- 下一行输出到原点的距离,格式为“The distance to the treasure is d.”。
- x、y、d的小数部分保留三位,精确到千分位。
- 每个测试用例后输出空行。
输入样例1
3N,1E,1N,3E,2S,1W.
10NW.
END
输出样例1
Map #1
The treasure is located at (3.000,2.000).
The distance to the treasure is 3.606.
Map #2
The treasure is located at (-7.071,7.071).
The distance to the treasure is 10.000.
题目来源
1997年西南欧洲区域竞赛(Southwestern European Regional Contest)