히스토그램 안의 최단 경로
시간 제한2초메모리 제한256 MB
직선 히스토그램 다각형에서 밑변 꼭짓점과 경계 점 사이의 최단 내부 경로 길이 합을 구합니다.
문제
히스토그램은 경계가 두 사슬로 이루어진 단순 직교 다각형이다. 위쪽 사슬은 가로축에 대해 단조이고, 아래쪽 사슬은 수평 선분 하나이다. 이 수평 선분을 밑변이라고 한다.

그림 1. 히스토그램과 밑변
히스토그램 의 꼭짓점 개를 경계를 따라 반시계 방향으로 나열한 것을 이라고 하자. 밑변은 이다. 변 는 꼭짓점 와 을 잇는 선분이고, 이며 이다.
안의 경로는 의 외부와 만나지 않는 단순 경로이다. 경로의 길이는 경로를 이루는 선분의 유클리드 길이를 모두 더한 값이다. 위의 두 점 와 사이의 거리는 안에서 두 점을 잇는 최단 경로의 길이이다. 경계 위의 점 는 변 위에 있으면서 에서의 거리가 인 점을 뜻한다.
그림 1의 히스토그램에서 과 사이의 최단 경로는 , , , 을 차례로 잇는 꺾은선이고, 길이는 이다. 과 사이의 최단 경로는 두 점을 곧바로 잇는 선분이고, 길이는 이다.
꼭짓점이 개인 히스토그램 와 그 경계 위의 점 개로 이루어진 집합 가 주어진다. 과 의 모든 점 사이의 거리를 구하는 프로그램을 작성하시오.
입력
입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 케이스의 개수 가 주어진다.
각 테스트 케이스의 첫째 줄에는 히스토그램 의 꼭짓점 개수 이 주어진다. ()
다음 개의 줄에 부터 까지 꼭짓점이 한 줄에 하나씩 주어진다. 각 줄에는 그 꼭짓점의 x좌표와 y좌표를 나타내는 정수 두 개가 주어지고, 두 좌표 모두 이상 이하이다. 이 밑변이다.
다음 줄에 집합 의 크기 이 주어진다. ()
다음 개의 줄에 의 점 가 한 줄에 하나씩 정수 두 개 와 로 주어진다. (, 변 의 길이) 의 점은 모두 서로 다르다.
출력
출력은 표준 출력으로 한다. 각 테스트 케이스마다 한 줄에 과 의 모든 점 사이의 거리를 더한 값을 출력한다. 소수점 아래 둘째 자리에서 반올림해 소수점 아래 첫째 자리까지 정확히 출력한다.
두 점 과 사이의 유클리드 거리는 이다.