아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

직선 2

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

요약
자기교차할 수 있는 다각형과 여러 직선이 주어질 때, 각 직선에서 다각형까지의 거리의 제곱을 기약분수로 정확히 구해 출력한다.
난이도

보통10점 중 7점

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

문제

직선과 다각형 사이의 거리는 그 직선과 다각형에 속하는 임의의 점 사이의 거리 중 가장 작은 값이다. 여기서 다각형은 경계(변)와 내부를 모두 포함한다. 다각형은 볼록하지 않아도 되며, 같은 꼭짓점이 여러 번 나올 수 있고 경계가 스스로 교차할 수도 있다.

다음을 수행하는 프로그램을 작성하시오.

  • 표준 입력에서 다각형과 여러 개의 직선을 읽는다,
  • 각 직선에 대해 그 직선과 다각형 사이의 거리를 계산한다,
  • 결과를 표준 출력에 쓴다.

입력

첫째 줄에 두 정수 nn과 mm (3≤n≤50 0003 \le n \le 50\,000, 1≤m≤50 0001 \le m \le 50\,000)이 공백으로 구분되어 주어진다. 각각 다각형의 꼭짓점 수와 분석할 직선의 수이다.

다음 nn개의 줄에는 각각 두 정수 xix_i와 yiy_i (−109≤xi,yi≤109-10^9 \le x_i, y_i \le 10^9)가 주어지며, ii번째 꼭짓점의 좌표이다. 이웃한 두 꼭짓점, 그리고 마지막 꼭짓점과 첫 번째 꼭짓점이 다각형의 변을 이룬다.

다음 mm개의 줄에는 각각 세 정수 AiA_i, BiB_i, CiC_i (−109≤Ai,Bi,Ci≤109-10^9 \le A_i, B_i, C_i \le 10^9, Ai2+Bi2>0A_i^2 + B_i^2 > 0)가 주어지며, 직선 Aix+Biy+Ci=0A_i x + B_i y + C_i = 0을 나타낸다.

출력

mm개의 줄을 출력한다. ii번째 줄에는 ii번째 직선과 다각형 사이 거리의 제곱을 기약분수로 출력한다. 분자, / 기호, 양의 분모 순서로 쓴다. 직선이 다각형에 닿거나 다각형을 지나가면 거리는 00이며 0/1로 출력한다.

힌트

예제1

  1. 예제 1

    입력
    8 2
    2 1
    6 1
    6 2
    3 2
    3 5
    5 5
    5 7
    2 7
    1 1 -2
    1 0 -6
    
    예상 출력
    1/2
    0/1