가장 짧은 다리

두 강기슭 폴리곤과 양쪽에 위치한 점 s, t가 주어질 때, 다리 길이를 최소로 하고 그다음 도로 길이 합을 최소로 하는 고속도로의 총 길이를 구한다.

어려움8기하완전 탐색구현수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

도시는 한 변의 길이가 1,000인 정사각형 모양이다. 도시 한가운데를 큰 강이 북쪽에서 남쪽으로 흐르고, 강은 도시를 서쪽과 동쪽 두 부분으로 나눈다.

시장은 서쪽 지점 ss와 동쪽 지점 tt를 잇는 고속도로를 놓기로 했다. 고속도로는 강을 건너는 다리 하나와 도로 두 개로 이루어진다. 도로 하나는 ss와 다리의 서쪽 끝을 잇고, 나머지 하나는 tt와 다리의 동쪽 끝을 잇는다. 다리는 서쪽 강기슭 위의 한 점과 동쪽 강기슭 위의 한 점을 잇는 선분이다. 도로는 직선이 아니어도 되지만, 강과 겹치는 부분의 길이는 0이어야 한다.

건설비를 아끼려고 시장은 다음 두 조건을 지키는 고속도로를 놓는다.

  • 다리가 도로보다 비싸므로, 서쪽과 동쪽을 잇는 다리의 길이가 먼저 최소여야 한다.
  • 그 조건 아래에서 도로 두 개의 길이 합이 최소여야 한다.

두 조건을 만족하는 고속도로의 전체 길이를 구하는 프로그램을 작성하시오.

입력

입력은 테스트 케이스 하나로 이루어지며, 형식은 다음과 같다.

sx sy tx ty
N
wx1 wy1
:
:
wxN wyN
M
ex1 ey1
:
:
exM eyM

도시 안의 점은 좌표 (x,y)(x, y)로 나타낸다. xx는 서쪽 변에서 잰 거리이고, yy는 북쪽 변에서 잰 거리이다.

첫째 줄에 네 정수 sxs_x, sys_y, txt_x, tyt_y가 주어진다(0sx,sy,tx,ty10000 \le s_x, s_y, t_x, t_y \le 1000). 점 ss(sx,sy)(s_x, s_y)에 있고, 점 tt(tx,ty)(t_x, t_y)에 있다. 다음 줄에 서쪽 강기슭을 이루는 점의 개수 NN이 주어진다(2N202 \le N \le 20). 이어지는 NN개 줄에 두 정수 wxiwx_iwyiwy_i가 주어지며(0wxi,wyi10000 \le wx_i, wy_i \le 1000), 서쪽 강기슭의 ii번째 점은 (wxi,wyi)(wx_i, wy_i)이다. 서쪽 강기슭은 1iN11 \le i \le N-1인 모든 ii에 대해 (wxi,wyi)(wx_i, wy_i)(wxi+1,wyi+1)(wx_{i+1}, wy_{i+1})을 이은 선분으로 만들어진 꺾은선이다. 다음 줄에 동쪽 강기슭을 이루는 점의 개수 MM이 주어진다(2M202 \le M \le 20). 이어지는 MM개 줄에 두 정수 exiex_ieyiey_i가 주어지며(0exi,eyi10000 \le ex_i, ey_i \le 1000), 동쪽 강기슭의 ii번째 점은 (exi,eyi)(ex_i, ey_i)이다. 동쪽 강기슭도 같은 방식으로 만들어진 꺾은선이다.

입력은 다음 조건을 만족한다.

  • wy1wy_1ey1ey_1은 0이고, wyNwy_NeyMey_M은 1,000이다.
  • 각 꺾은선은 자기 자신과 만나지 않는다.
  • 서쪽 강기슭과 동쪽 강기슭은 서로 만나지 않는다.
  • ss는 도시의 서쪽 부분에 있다. 즉 ss는 정사각형의 변과 서쪽 강기슭 꺾은선으로 둘러싸인 영역 가운데 동쪽 강기슭의 점을 포함하지 않는 쪽에 있다.
  • tt는 도시의 동쪽 부분에 있다. 즉 tt는 정사각형의 변과 동쪽 강기슭 꺾은선으로 둘러싸인 영역 가운데 서쪽 강기슭의 점을 포함하지 않는 쪽에 있다.
  • 각 꺾은선은 정사각형과 양 끝점에서만 만난다. 즉 2iN12 \le i \le N-1에서 0<wxi,wyi<10000 < wx_i, wy_i < 1000이고, 2iM12 \le i \le M-1에서 0<exi,eyi<10000 < ex_i, ey_i < 1000이다.

출력

한 줄에 다리의 길이와 고속도로의 전체 길이를 공백 하나로 구분해 출력한다. 고속도로의 전체 길이는 다리 하나와 도로 두 개의 길이를 모두 더한 값이다. 두 값 모두 소수점 아래 넷째 자리까지 출력한다.