시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
2 초 128 MB 11 1 1 33.333%

문제

좀은 옷(천으로 된)을 좀먹고 사는 벌레이다. 한 마리의 좀이 천으로 된 옷감 위에 놓여있다. 좀은 매우 작기 때문에, 천의 크기는 무한한 것으로 가정한다. 또, 천의 곳곳에는 다른 재질의 옷감으로 기워져 있는 부분이 N군데 있다. 기워져 있는 부분은 항상 볼록다각형 모양을 이루고 있는데, 이러한 볼록다각형들이 서로 닿아 있거나 겹쳐져 있을 수도 있다.

이 좀은 어떤 특정한 위치(옷감 위의)로 이동하려 하는데, 옷감을 좀먹으며 이동해야 하기 때문에 천으로 된 부분만을 지나며 이동해야 한다. 다른 재질의 옷감으로 기울 때에는 천으로 된 실을 사용했기 때문에, 기워져 있는 부분의 테두리(볼록다각형의 각 변들)는 지날 수 있다고 가정하자. 만약 두 볼록다각형의 변이 맞닿아 있는 부분이 있다면, 이러한 부분 역시 지날 수 있다고 하자. 하지만 실제로 기워진 부분 위(볼록다각형의 내부)는 절대로 지날 수 없다.

좀이 목적지까지 이동할 때의 최소 거리를 구해내는 프로그램을 작성하시오.

입력

첫째 줄에 다섯 정수 N, X, Y, U, V가 주어진다. 이는 좀의 현재 위치가 (X, Y)이고, 이동하려는 곳이 (U, V)라는 의미이다. 다음 N개의 줄에는 기워진 부분들을 의미하는 볼록다각형이 주어진다. 각 줄에 처음에는 볼록다각형의 꼭지점의 개수 M이 주어지고, 그 다음 M개의 점들의 x, y좌표가 차례로 주어진다. 모든 볼록다각형의 꼭지점의 합은 300을 넘지 않으며, 모든 좌표는 -10,000이상 10,000이하의 정수이다.

출력

첫째 줄에 답을 출력한다. 소수점 아래 넷째 자리에서 반올림한다. 만약 이동할 수 없다면 -1을 출력한다.

예제 입력

2 0 0 5 5
4 1 0 4 0 4 1 1 2
3 3 3 4 4 5 2

예제 출력

7.236

힌트