폭풍 속의 Screamers
시간 제한2초메모리 제한512 MB
직교 다각형 지붕 위의 두 점이 주어질 때, 경사진 지붕 면을 따라 이동하는 최단 경로의 길이를 구합니다.
문제
도시에서 매일 보는 "흔한" 비둘기의 정식 이름이 "rock pigeon" 또는 "rock dove"라는 사실은 잘 알려져 있지 않다. 바위비둘기 Rocky Dave는 록 음악과 비둘기, 그리고 그와 관련된 모든 것에 관심이 많은 어린 암컷 바위비둘기 Columba Livia를 사랑한다. 어느 맑은 가을 오후, 두 마리가 도시 외곽의 같은 건물 지붕 위에 앉아 있는 것을 우연히 보게 된다.
Rocky Dave는 자신감 넘치는 걸음걸이를 뽐내고 싶어서 지붕 위를 날아가는 대신 걸어서 연인에게 다가가기로 한다. 이 지붕은 현대식 평지붕이 아니라 경사면으로 이루어진 고전적인 지붕이다. 건물은 여러 개의 작은 건물이 이어져 있어서 평면도가 다소 복잡하다. Dave가 따라가려는 "직선"은 위에서 볼 때만 곧게 보인다. Dave는 경사면을 올라 용마루를 넘고, 반대편으로 내려가 지붕 골짜기에 들어간 뒤 다시 올라가야 할 수도 있다.
건물의 정확한 평면도, 경사면의 각도(모든 경사면의 각도는 같다), 그리고 지붕 위에서 두 마리의 처음 위치를 알고 있다. Columba Livia는 Rocky Dave가 도착하기 전까지 자리를 떠나지 않는다고 가정할 때, 이 정보를 바탕으로 Rocky Dave가 이동한 정확한 거리를 구하라.
이동 경로가 건물의 경계를 벗어나는 경우, Dave는 다음과 같이 움직인다. 지붕 가장자리의 빗물받이에 닿으면, 같은 높이를 유지한 채 Columba Livia 방향으로 곧장 날아간다. 건물의 다른 쪽 빗물받이에 닿으면 그곳에서부터 다시 걸어서 이동한다.
상황을 명확하게 하기 위해 지붕의 기하학적 모델을 제시한다. Z를 x-y 평면 위의 단순 다각형이라고 하자. 단순 다각형이란 경계가 자기 자신과 닿거나 교차하지 않는 닫힌 곡선인 다각형이다. 허용 피라미드는 밑면이 x-y 평면에서 축에 평행한 정사각형이고, 꼭짓점이 밑면 중심의 바로 위에 있는 피라미드이다. 피라미드의 높이는 밑면 한 변 길이의 정확히 절반이다. 허용 피라미드의 밑면 어떤 부분도 Z 밖에 놓이지 않는다. 허용 피라미드는 밑면 한 변의 길이와 높이가 0일 수도 있으며, 이 경우 하나의 점으로 이루어지고 그 점이 곧 꼭짓점이다.
x-y 평면 위 또는 그 위쪽의 점 X가 Z의 지붕 위의 점인 것은, X가 허용 피라미드의 꼭짓점이고 X의 바로 위에 있는 점이 허용 피라미드의 꼭짓점이 아닐 때에만 성립한다.
입력
첫 줄에는 다섯 개의 정수가 주어진다. 첫 번째 정수 N(4 ≤ N ≤ 400)은 건물 평면도의 변으로 이루어진 다각형의 꼭짓점 개수이다. 이어서 Rocky Dave의 x, y 좌표와 Columba Livia의 x, y 좌표가 주어진다.
다음 N개의 줄에는 각각 꼭짓점 하나의 x, y 좌표가 주어진다. 꼭짓점은 반시계 방향 순서로 나열되어 있다. 건물의 모든 변은 좌표축 중 하나와 평행하다.
두 마리 비둘기 모두 주어진 다각형의 바깥에 있지 않다. 입력의 모든 좌표는 절댓값이 이하인 정수이다.
출력
Rocky Dave가 이동한 거리를 출력한다. 답은 절대 오차 또는 상대 오차가 보다 작아야 한다.
힌트

그림 1: 첫 번째와 두 번째 입력 예시를 나타낸 그림.