두 강기슭 폴리곤과 양쪽에 위치한 점 s, t가 주어질 때, 다리 길이를 최소로 하고 그다음 도로 길이 합을 최소로 하는 고속도로의 총 길이를 구한다.
어려움8기하완전 탐색구현수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB도시는 한 변의 길이가 1,000인 정사각형 모양이다. 도시 한가운데를 큰 강이 북쪽에서 남쪽으로 흐르고, 강은 도시를 서쪽과 동쪽 두 부분으로 나눈다.
시장은 서쪽 지점 s와 동쪽 지점 t를 잇는 고속도로를 놓기로 했다. 고속도로는 강을 건너는 다리 하나와 도로 두 개로 이루어진다. 도로 하나는 s와 다리의 서쪽 끝을 잇고, 나머지 하나는 t와 다리의 동쪽 끝을 잇는다. 다리는 서쪽 강기슭 위의 한 점과 동쪽 강기슭 위의 한 점을 잇는 선분이다. 도로는 직선이 아니어도 되지만, 강과 겹치는 부분의 길이는 0이어야 한다.
건설비를 아끼려고 시장은 다음 두 조건을 지키는 고속도로를 놓는다.
두 조건을 만족하는 고속도로의 전체 길이를 구하는 프로그램을 작성하시오.
입력은 테스트 케이스 하나로 이루어지며, 형식은 다음과 같다.
sx sy tx ty
N
wx1 wy1
:
:
wxN wyN
M
ex1 ey1
:
:
exM eyM
도시 안의 점은 좌표 (x,y)로 나타낸다. x는 서쪽 변에서 잰 거리이고, y는 북쪽 변에서 잰 거리이다.
첫째 줄에 네 정수 sx, sy, tx, ty가 주어진다(0≤sx,sy,tx,ty≤1000). 점 s는 (sx,sy)에 있고, 점 t는 (tx,ty)에 있다. 다음 줄에 서쪽 강기슭을 이루는 점의 개수 N이 주어진다(2≤N≤20). 이어지는 N개 줄에 두 정수 wxi와 wyi가 주어지며(0≤wxi,wyi≤1000), 서쪽 강기슭의 i번째 점은 (wxi,wyi)이다. 서쪽 강기슭은 1≤i≤N−1인 모든 i에 대해 (wxi,wyi)와 (wxi+1,wyi+1)을 이은 선분으로 만들어진 꺾은선이다. 다음 줄에 동쪽 강기슭을 이루는 점의 개수 M이 주어진다(2≤M≤20). 이어지는 M개 줄에 두 정수 exi와 eyi가 주어지며(0≤exi,eyi≤1000), 동쪽 강기슭의 i번째 점은 (exi,eyi)이다. 동쪽 강기슭도 같은 방식으로 만들어진 꺾은선이다.
입력은 다음 조건을 만족한다.
한 줄에 다리의 길이와 고속도로의 전체 길이를 공백 하나로 구분해 출력한다. 고속도로의 전체 길이는 다리 하나와 도로 두 개의 길이를 모두 더한 값이다. 두 값 모두 소수점 아래 넷째 자리까지 출력한다.