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

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

회전하는 판

시간 제한2초메모리 제한512 MB

요약
첫 번째 꼭짓점에 고정된 단순 다각형이 m개의 외부 점 각각에 닿기 전까지 시계 방향과 반시계 방향으로 회전할 수 있는 최대 각도를 구한다.
난이도

어려움10점 중 8점

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

문제

소년 바샤는 기하학을 아주 좋아한다. 게다가 그는 판자에 못을 박는 것도 아주 좋아한다. 오늘 그는 나무 판자에 못으로 고정하려는, 가장 좋아하는 금속 판을 살펴보고 있다.

판은 자기 교차도 자기 접촉도 없는 다각형으로 둘러싸인 모양이다. 다각형의 첫 번째 꼭짓점에는 판에 작은 고리가 달려 있다.

먼저 바샤는 수평 탁자 위에 놓인 판자를 위에 판을 올려놓고, 첫 번째 꼭짓점의 고리를 통해 못을 박아 판을 판자에 고정한다. 박힌 못은 첫 번째 꼭짓점의 위치를 단단히 고정하지만, 판이 그 꼭짓점을 중심으로 회전하는 것은 허용한다.

이제 바샤는 판의 회전을 제한할 두 번째 못을 박으려고 하는데, 어디에 박을지는 아직 정하지 않았다. 그는 못을 박을 수 있는 mm개의 후보 위치를 정해 두고, 각 위치에 대해 그 점에 못을 박았을 때 판을 어느 각도까지 돌릴 수 있는지 알고 싶어 한다. 판이 못에 닿는 순간 더 이상 돌릴 수 없다.

입력 파일의 첫째 줄에는 다각형의 꼭짓점 수 nn이 주어진다(3≤n≤2 0003 \le n \le 2\,000). 다음 nn개 줄에는 다각형 꼭짓점의 좌표가 둘레를 따라 주어진다.

그다음 줄에는 바샤가 두 번째 못의 위치 후보로 고려하는 점의 수 mm이 주어진다(1≤m≤2 0001 \le m \le 2\,000). 다음 mm개 줄에는 그 점들의 좌표가 주어진다. 이 점들은 모두 판의 처음 위치 바깥에 있다.

입력 파일의 모든 좌표는 정수이고 절댓값이 10610^6을 넘지 않는다.

출력

출력 파일에는 mm개 줄이 있어야 한다.

ii번째 줄에는 두 실수 αi\alpha_i와 βi\beta_i를 출력한다. αi\alpha_i는 바샤가 ii번째 점에 못을 박았을 때 판을 시계 방향으로 돌릴 수 있는 최대 각도(도)이고, βi\beta_i는 이때 판을 반시계 방향으로 돌릴 수 있는 최대 각도(도)이다.

못이 판의 회전을 방해하지 않으면 αi=βi=360\alpha_i = \beta_i = 360을 출력한다.

답의 절대 오차 또는 상대 오차가 정답에 대해 10−610^{-6}을 넘지 않으면 정답으로 간주한다.

힌트

위 그림은 예제의 테스트를 나타낸다. 직사각형은 판의 처음 위치를 나타낸다. 점은 바샤가 못을 박을 계획인 위치를 나타낸다.

첫 번째 점에 박은 못은 판의 회전을 방해하지 않는다.

두 번째 점에 박은 못은 판을 시계 방향으로 45∘45^\circ 또는 반시계 방향으로 225∘225^\circ 돌릴 수 있게 한다.

예제1

  1. 예제 1

    입력
    4
    0 0
    -3 -3
    0 -6
    3 -3
    3
    -8 0
    -2 0
    2 -1
    
    예상 출력
    360.000000000000 360.000000000000
    45.000000000000 225.000000000000
    251.565051177078 18.434948822922