보물 지도
시간 제한1초메모리 제한128 MB
원판의 경계에서 출발해 내부의 목표점까지, 축 방향이나 45도 방향으로만 움직이되 원판을 벗어나지 않으면서 걷는 최소 총 거리를 구한다.
문제
해적의 보물 지도는 무인도에 상륙한 지점에서 보물이 묻힌 X 표시 지점까지 이어지는 이동 지시들의 목록입니다. 어떤 섬 하나에서 이 걷기의 최단 경로를 구하는 것이 목표입니다.
섬은 원점 을 중심으로 하고 반지름이 걸음인 원판입니다. 중심을 기준으로 은 북(north), 은 남(south), 은 동(east), 은 서(west)이고, 은 북동(northeast), 은 남동(southeast), 은 북서(northwest), 은 남서(southwest)입니다.
상륙 지점은 섬의 해안, 즉 경계 원 위의 한 점이고, X 표시 지점은 섬 안 어딘가에 있습니다. 하나의 지시는 다음 형태입니다.
방향 거리
여기서 방향은 north, south, east, west, northeast, northwest, southeast, southwest 중 하나이고, 거리는 그 방향으로 걷는 걸음 수입니다. 예를 들어 northeast 방향으로 거리 만큼 걸으면 동쪽으로 걸음, 북쪽으로 걸음 이동합니다.
섬을 한 번도 벗어나지 않으면서 상륙 지점에서 X 표시 지점까지 이어지는 모든 지시 수열을 생각합니다. 그러한 수열 중에서 걸은 총 거리(각 지시의 거리의 합)의 최솟값을 구하세요.
입력
입력은 여러 개의 테스트 케이스로 이루어집니다. 각 테스트 케이스는 다섯 개의 정수 , , , , 가 주어지는 한 줄입니다. 각각 섬의 반지름, 상륙 지점의 좌표 , X 표시 지점의 좌표 를 뜻합니다. 상륙 지점은 해안 위에 있으므로 이고, X 표시 지점은 섬 안에 있으므로 입니다. 상륙 지점과 X 표시 지점은 서로 다릅니다. 마지막 테스트 케이스 뒤에는 -1 하나만 있는 줄이 옵니다.
출력
각 테스트 케이스마다, 걸은 총 거리의 최솟값을 소수점 아래 여섯째 자리까지 반올림하여 한 줄에 출력하세요.