래프팅 디자인

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

요약
내부 폴리곤을 완전히 감싸는 외부 폴리곤이 있을 때, 두 폴리곤 사이의 트랙을 한 바퀴 자유롭게 돌 수 있는 원의 최대 반지름을 구합니다.
난이도

어려움10점 중 8점

유형
기하, 이분 탐색, 그래프
정답자
아직 제출이 없습니다

문제

에버랜드가 새로 추진하는 래프팅 프로젝트의 디자이너 희현이는 바깥쪽 다각형이 안쪽 다각형을 완전히 포함하도록 두 개의 다각형을 그린 뒤, 그 사이의 빈 공간을 래프팅 트랙으로 만들었다.

이제 트랙 위를 떠다닐 원형 튜브의 크기를 정해야 한다. 튜브는 트랙을 따라 자유롭게 움직이고 회전할 수 있어야 하므로 어느 지점에서도 걸리지 않아야 한다. 튜브는 최대한 크게 만들고 싶지만, 너무 크면 트랙의 좁은 구간에 걸려 버린다.

두 다각형 사이의 트랙을 한 바퀴 자유롭게 돌 수 있는 원형 튜브의 최대 반지름을 구하여라.

입력

첫째 줄에 테스트 케이스의 수 TT (1≤T≤1001 \le T \le 100)가 주어진다.

각 테스트 케이스는 다음과 같이 주어진다.

  • 첫째 줄에 안쪽 다각형의 꼭짓점 수 nin_i (3≤ni≤1003 \le n_i \le 100)가 주어지고, 이어지는 nin_i개의 줄에 각 꼭짓점의 좌표 xx yy가 다각형을 따라가는 순서대로 주어진다.
  • 그다음 줄에 바깥쪽 다각형의 꼭짓점 수 non_o (3≤no≤1003 \le n_o \le 100)가 주어지고, 이어지는 non_o개의 줄에 각 꼭짓점의 좌표 xx yy가 순서대로 주어진다.

모든 좌표는 정수이며 절댓값이 10001000 이하이다. 각 다각형의 꼭짓점은 시계 방향 또는 반시계 방향으로 주어진다. 두 다각형은 서로 겹치거나 닿지 않으며, 바깥쪽 다각형은 항상 안쪽 다각형을 완전히 포함한다.

출력

각 테스트 케이스마다 트랙을 자유롭게 지날 수 있는 원형 튜브의 최대 반지름을 소수점 아래 여섯째 자리까지 반올림하여 한 줄에 하나씩 출력한다. 답은 항상 소수점 아래 여섯 자리로 고정하여 출력한다.

예제3

  1. 예제 1

    입력
    2
    4
    -5 -5
    5 -5
    5 5
    -5 5
    4
    -10 -10
    -10 10
    10 10
    10 -10
    3
    0 0
    1 0
    1 1
    5
    3 -3
    3 3
    -4 2
    -1 -1
    -2 -2
    
    예상 출력
    2.500000
    0.707107
    
  2. 예제 2

    입력
    1
    4
    -1 -1
    1 -1
    1 1
    -1 1
    4
    -4 -4
    4 -4
    4 4
    -4 4
    
    예상 출력
    1.500000
    
  3. 예제 3

    입력
    1
    3
    0 0
    2 0
    0 2
    4
    -4 -4
    4 -4
    4 4
    -4 4
    
    예상 출력
    1.000000