만드는 중입니다

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

다각형과 직선

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

요약
볼록 다각형을 지나는 각 직선에 대해 가장 가까운 다각형 꼭짓점을 찾고 그 거리를 출력한다.
난이도

보통10점 중 7점

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

문제

구스타브는 기하 문제를 푸는 것을 좋아한다. 인터넷에서 기하 문제를 이것저것 살펴보다가 혼자서는 풀지 못한 문제를 하나 만났다. 구스타브를 도와 다음 문제를 풀어라.

볼록 다각형 하나와 그 다각형을 가로지르는 직선 여러 개가 주어진다. 각 직선마다 다각형의 꼭짓점 중에서 그 직선과 가장 가까운 꼭짓점을 찾고, 직선과 그 꼭짓점 사이의 거리를 구하면 된다.

직선이 다각형 내부와 공통점이 하나 이상 있으면 그 직선은 다각형을 가로지른다고 한다.

입력

첫째 줄에 다각형의 꼭짓점 개수 NN (3≤N≤100 0003 \le N \le 100\,000)이 주어진다.

다음 NN개 줄에는 볼록 다각형의 꼭짓점 좌표가 한 줄에 하나씩 주어진다. 각 줄에는 절댓값이 10910^9보다 작은 정수 두 개가 있고, 꼭짓점은 시계 방향 순서다.

그다음 줄에 직선의 개수 MM (1≤M≤100 0001 \le M \le 100\,000)이 주어진다.

다음 MM개 줄에는 직선 Ax+By+C=0Ax + By + C = 0을 나타내는 정수 AA, BB, CC가 주어진다. ∣A∣,∣B∣,∣C∣≤109|A|, |B|, |C| \le 10^9이고, AA와 BB가 동시에 00인 경우는 없다. 주어지는 직선은 모두 다각형을 가로지른다.

출력

MM개 줄을 출력한다. ii번째 줄에는 ii번째 직선과 다각형에서 가장 가까운 꼭짓점 사이의 거리를 소수점 아래 넷째 자리에서 반올림해 셋째 자리까지 출력한다.

예제4

  1. 예제 1

    입력
    4
    0 2
    2 0
    0 -2
    -2 0
    1
    0 4 -5
    
    예상 출력
    0.750
    
  2. 예제 2

    입력
    3
    0 6
    6 0
    0 0
    2
    2 4 -13
    0 1 -2
    
    예상 출력
    0.224
    2.000
    
  3. 예제 3

    입력
    4
    0 0
    0 10
    10 10
    10 0
    6
    1 1 -5
    1 -1 -3
    0 1 -7
    1 0 -4
    1 -1 0
    1000000 1 -1
    
    예상 출력
    3.536
    2.121
    3.000
    4.000
    0.000
    0.000
    
  4. 예제 4

    입력
    5
    -1000 -1000
    -900 800
    500 1000
    1000 -200
    200 -900
    5
    3 7 100
    -5 2 -1000
    1 -1 50
    2 -9 -3000
    7 1 -400
    
    예상 출력
    223.221
    278.543
    35.355
    86.772
    14.142