만드는 중입니다

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

다각형 회전

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

요약
회전 중심을 기준으로 회전하는 다각형과 그 안에 고정된 볼록 다각형이 처음 닿을 때까지의 각도를 구한다.
난이도

어려움10점 중 8점

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

문제

성간 지성체 보건 위원회 HCII는 모든 성간 지성체의 건강을 돌보는 것을 목표로 한다.

HCII 직원은 환자의 건강 검진에 특수 장비를 사용한다. 이 장비는 여러 기구가 갖춰진 다각형 모양의 방처럼 생겼다. 직원이 환자를 장비 안에 넣으면 장비가 시계 방향으로 회전하면서 여러 각도에서 환자를 진단한다. 이 장비는 모양이 제각각인 여러 종에 두루 맞지만 몸집이 큰 환자에게는 적합하지 않다. 게다가 환자가 장비 안에 들어가더라도 회전하는 도중에 장비가 환자에게 부딪힐 수 있다.


그림 2: HCII가 사용하는 장비

장비 내부의 모양은 꼭짓점이 MM개인 다각형이고, 환자의 모양은 꼭짓점이 NN개인 볼록 다각형이다. 장비를 환자에게 닿지 않게 하면서 시계 방향으로 얼마나 회전시킬 수 있는지 구하고, 그 각도를 도 단위로 출력하라.

입력

입력은 여러 개의 데이터 세트로 이루어지며, 마지막 줄에는 "0 0"이 주어진다. 각 데이터 세트는 다음 형식으로 주어진다.

M N
px1 py1 px2 py2 ... pxM pyM
qx1 qy1 qx2 qy2 ... qxN qyN
cx cy

첫째 줄에 두 정수 MM과 NN (3≤M,N≤103 \le M, N \le 10)이 주어진다. 둘째 줄에는 정수 2M2M개가 주어지며, (pxj,pyj)(px_j, py_j)는 장비의 jj번째 꼭짓점 좌표이다. 셋째 줄에는 정수 2N2N개가 주어지며, (qxj,qyj)(qx_j, qy_j)는 환자의 jj번째 꼭짓점 좌표이다. 넷째 줄에는 회전 중심의 좌표를 나타내는 두 정수 cxcx와 cycy가 주어진다.

모든 좌표는 −1000-1000 이상 10001000 이하이다. 각 다각형의 꼭짓점은 반시계 방향 순서로 주어진다. 처음 상태에서 환자는 장비 안에 있고, 두 다각형은 서로 교차하지 않는다. 장비가 환자에게 부딪히지 않으면서 환자와의 거리가 10−610^{-6}보다 가까워지는 경우는 없다고 가정해도 된다. 또한 장비가 환자에게 부딪힌 뒤 계속 회전하면, 장비는 반드시 환자를 10−610^{-6}보다 긴 길이만큼 밀고 들어간다고 가정해도 된다.

출력

각 데이터 세트마다 장비를 회전시킬 수 있는 각도를 도 단위로 한 줄에 출력한다. 각도는 소수점 아래 정확히 7자리까지 반올림하여 출력한다.

회전하는 동안 장비가 환자에게 한 번도 부딪히지 않으면 각도로 360을 출력한다. 이때도 소수점 아래 7자리를 붙여 360.0000000으로 출력한다.

예제1

  1. 예제 1

    입력
    5 4
    0 0 20 0 20 10 0 10 1 5
    10 3 12 5 10 7 8 5
    10 5
    4 3
    0 0 10 0 10 5 0 5
    3 1 6 1 5 4
    0 0
    5 3
    0 0 10 0 10 10 0 10 3 5
    1 1 4 1 4 6
    0 0
    0 0
    
    예상 출력
    360.0000000
    12.6803835
    3.3722867