만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

우물 파기

시간 제한1초메모리 제한128 MB

요약
표면 폴리선과 대수층 윗면 사이 수직 간격이 가장 작은 위치의 최소 깊이를 구합니다.
난이도

보통10점 중 4점

유형
기하, 투 포인터
정답자
아직 제출이 없습니다

문제

미하우 씨는 새 우물을 파려고 합니다. 그는 자기 땅의 단면도를 가지고 있는데, 이 도면에는 두 개의 윤곽선이 그려져 있습니다. 하나는 지표면이고 다른 하나는 지하수층(대수층)의 윗면이며, 둘 다 꺾은선(선분들이 이어진 선) 모양입니다. 미하우 씨는 오직 수직으로만 뚫을 수 있는 특수 시추기를 이미 빌렸습니다. 시추 비용이 꽤 비싸기 때문에, 그는 지표면에서 지하수층까지 도달하려면 최소 몇 만큼의 깊이를 뚫어야 하는지 알고 싶어 합니다.

즉, 같은 xx 좌표를 지나는 수직선에서 지표면과 지하수층 사이의 세로 거리가 가장 작아지는 곳을 찾아, 그 최소 거리를 구하면 됩니다.

입력

첫째 줄에 테스트 묶음의 개수를 나타내는 자연수 ZZ (1≤Z≤51 \le Z \le 5)가 주어집니다. 이어서 각 묶음이 차례로 주어집니다.

각 묶음의 첫째 줄에는 지표면을 나타내는 꺾은선의 꼭짓점 개수를 뜻하는 자연수 nn (2≤n≤1000002 \le n \le 100000)이 주어집니다. 둘째 줄에는 공백 하나로 구분된 nn개의 자연수 쌍 xi yix_i\ y_i (1≤xi,yi≤1091 \le x_i, y_i \le 10^9)가 주어지며, 모든 1≤i<n1 \le i < n에 대해 xi<xi+1x_i < x_{i+1}입니다.

이어지는 두 줄에는 같은 방식으로 지하수층 윗면을 나타내는 꺾은선이 주어집니다. 셋째 줄에는 꼭짓점 개수 mm (2≤m2 \le m, n+m≤100000n + m \le 100000)이, 넷째 줄에는 공백 하나로 구분된 mm개의 자연수 쌍 ui viu_i\ v_i (1≤ui,vi≤1091 \le u_i, v_i \le 10^9)가 주어지며, 모든 1≤i<m1 \le i < m에 대해 ui<ui+1u_i < u_{i+1}입니다.

지하수층은 지표면보다 완전히 아래에 있습니다(두 꺾은선은 공통점을 가지지 않습니다). 또한 x1=u1x_1 = u_1이고 xn=umx_n = u_m입니다.

출력

각 테스트 묶음마다 한 줄에, 지표면과 지하수층을 가르는 최소 깊이를 나타내는 양의 실수 하나를 출력합니다. 이 값은 소수점 아래 정확히 두 자리까지 반올림하여 출력합니다.

힌트

첫째 예제에서는 땅 전체 길이에 걸쳐 구하려는 깊이 차이가 항상 11입니다. 둘째 예제에서는 x=5x = 5인 지점에서 차이가 가장 작고, 그 값은 정확히 22입니다. 셋째 예제에서는 x=10x = 10인 지점에서 차이가 가장 작습니다.

예제3

  1. 예제 1

    입력
    3
    2
    1 2 5 6
    2
    1 1 5 5
    2
    1 10 10 10
    3
    1 5 5 8 10 5
    2
    1 10 10 10
    3
    1 5 5 2 10 6
    
    예상 출력
    1.00
    2.00
    4.00
    
  2. 예제 2

    입력
    1
    2
    1 100 100 100
    3
    1 1 50 60 100 1
    
    예상 출력
    40.00
    
  3. 예제 3

    입력
    1
    5
    1 10 3 4 7 9 10 3 12 10
    2
    1 1 12 1
    
    예상 출력
    2.00