산책하는 두 강아지의 최소 거리

두 개가 같은 속도로 각자의 꺾은선 경로를 따라 이동할 때, 둘 다 이동 중인 동안 두 개 사이의 최소 거리를 구한다.

어려움8기하투 포인터구현수학아직 제출이 없습니다시간 제한6초메모리 제한512 MB

문제

당신은 강아지 두 마리, 섀도와 리디아를 돌본다. 두 마리 모두 좋아하는 산책 경로를 하나씩 외우고 있다. 경로는 점의 목록으로 주어지며, 강아지는 첫 번째 점에서 두 번째 점까지 곧장 걷고, 이어서 세 번째 점까지 곧장 걷는 식으로 마지막 점까지 간다. 마지막 점에는 그 강아지의 개집이 있다.

한 마리씩 차례로 산책시키면 시간이 너무 오래 걸려서 두 마리를 같은 순간에 내보내려고 한다. 걱정되는 것은 둘이 서로 신경 쓸 만큼 가까워지는 상황이므로, 산책하는 동안 둘이 얼마나 가까워지는지 알아야 한다.

두 마리는 같은 순간에 출발하고, 걷는 속력이 서로 완전히 같다. 경로의 마지막 점에 도착한 강아지는 곧바로 개집에 들어가 잠들며, 그 순간부터는 다른 강아지가 한동안 더 걷더라도 둘 사이의 거리를 따지지 않는다. 개집에 들어가는 바로 그 순간까지는 아직 깨어 있다.

두 마리가 모두 깨어 있는 동안 둘 사이 거리의 최솟값을 구하라.

입력

첫째 줄에 섀도의 경로를 이루는 점의 개수 nn (2n1000002 \le n \le 100000)이 주어진다. 다음 nn개의 줄에는 섀도가 지나는 순서대로 경로의 점이 한 줄에 하나씩, 두 정수 xxyy (0x,y100000 \le x, y \le 10000)로 주어진다. 이웃한 두 점은 적어도 한 좌표가 서로 다르다.

다음 줄에는 리디아의 경로를 이루는 점의 개수 mm (2m1000002 \le m \le 100000)이 주어지고, 이어지는 mm개의 줄에 리디아 경로의 점이 같은 형식으로 주어진다.

출력

두 강아지가 모두 깨어 있는 동안 둘 사이 거리의 최솟값을 소수점 아래 여섯째 자리까지 반올림해 출력한다.