만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

곳곳에 보물이 있다!

시간 제한1초메모리 제한128 MB

요약
걸음 수와 나침반 방향으로 이루어진 지도를 해석해 보물의 좌표를 구하고, 원점에서 보물까지의 직선 거리를 출력한다.
난이도

쉬움10점 중 3점

유형
시뮬레이션, 구현, 수학, 기하
정답자
아직 제출이 없습니다

문제

묻힌 보물을 찾는 방법은 간단하다. 지도 한 장만 있으면 된다! 카리브의 해적들은 엄청난 양의 보물을 묻어 두고, 그 위치를 알려 주는 정교한 지도를 남긴 것으로 유명했다. 지도는 보통 이런 식으로 적혀 있다. “외딴 야자나무에서 출발하라. 숲 쪽으로 세 걸음, 작은 샘 쪽으로 열일곱 걸음, …, 마지막으로 거대한 바위 쪽으로 여섯 걸음을 가라. 바로 그 자리를 파면 내 보물이 나온다!” 이러한 안내는 결국 여덟 개의 주요 방위, 즉 북(N), 북동(NE), 동(E), 남동(SE), 남(S), 남서(SW), 서(W), 북서(NW) 중 한 방향으로 정해진 걸음 수만큼 이동하라는 뜻이다.

지도를 그대로 따라가면 주변 경치를 구경하는 여정이 될 수 있지만, 급할 때는 훨씬 빠른 방법이 있다. 출발점에서 보물이 묻힌 곳까지 곧장 직선으로 가는 것이다. 예를 들어 북쪽으로 세 걸음, 동쪽으로 한 걸음, 북쪽으로 한 걸음, 동쪽으로 세 걸음, 남쪽으로 두 걸음, 서쪽으로 한 걸음을 걷는 대신, 목적지까지 곧바로 가면 약 3.6063.606 걸음이면 된다.

전통적인 방식의 지도가 주어졌을 때, 묻힌 보물의 위치와 그곳까지의 직선 거리를 계산하는 프로그램을 작성하라.

입력

입력은 여러 줄로 이루어지며, 각 줄은 최대 200200자로 된 하나의 문자열이다. 마지막 줄은 END이며, 입력의 끝을 나타낼 뿐 지도를 나타내지는 않는다.

그 밖의 각 줄은 다음 형식으로 하나의 보물 지도를 나타낸다. 쉼표로 구분된 쌍들의 목록이며, 각 쌍은 길이(10001000보다 작은 양의 정수)와 그 바로 뒤에 붙는 방향으로 이루어진다. 방향은 N(북), NE(북동), E(동), SE(남동), S(남), SW(남서), W(서), NW(북서) 중 하나다. 예를 들어 3W는 서쪽으로 세 걸음, 17NE는 북동쪽으로 열일곱 걸음을 뜻한다. 각 설명은 마침표(.)로 끝나며, 공백을 포함하지 않는다.

출력

각 지도에 대해 먼저 Map #k 줄을 출력한다. 여기서 k는 11부터 시작하는 지도의 번호다. 이어서 다음 줄에 보물의 절대 좌표를 다음 형식으로 출력한다.

The treasure is located at (x,y).

좌표계는 x축이 동쪽, y축이 북쪽을 향하며, 모든 경로는 원점 (0,0)(0,0)에서 시작한다. 대각선 방향(NE, NW, SE, SW)의 한 걸음은 정방위 방향의 한 걸음과 길이가 같으므로, 대각선 방향으로 길이 LL만큼 이동하면 두 좌표가 각각 L/2L/\sqrt{2}만큼 변한다.

그 다음 줄에는 (0,0)(0,0)에서 보물까지의 직선 거리를 다음 형식으로 출력한다.

The distance to the treasure is d.

xx, yy, dd는 소수점 아래 셋째 자리까지 정확히 출력한다. 값이 정확히 중간일 경우 가장 가까운 짝수 쪽으로 맞추는 짝수 반올림(round half to even) 방식을 사용한다. 서로 다른 지도의 출력 사이에는 빈 줄을 하나 넣어 구분한다.

예제3

  1. 예제 1

    입력
    3N,1E,1N,3E,2S,1W.
    10NW.
    END
    
    예상 출력
    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.
    
  2. 예제 2

    입력
    5E.
    END
    
    예상 출력
    Map #1
    The treasure is located at (5.000,0.000).
    The distance to the treasure is 5.000.
    
  3. 예제 3

    입력
    17NE.
    END
    
    예상 출력
    Map #1
    The treasure is located at (12.021,12.021).
    The distance to the treasure is 17.000.