방 안의 조명
시간 제한1초메모리 제한1024 MB
천장 램프가 아래로 내보내는 원뿔형 빛이 볼록 다각형 바닥과 벽에 닿는 총 면적을 구합니다.
문제
페르에게 힘든 한 해였다. 박사후 과정을 마치고 여러 번 면접을 본 끝에 드디어 나라 반대편 대학에서 일자리를 얻었지만, 새 아파트를 구할 시간은 2주뿐이었다. 결국 오래되고 먼지투성이인 아파트를 구했다. 그는 주말 내내 청소하고, 낡은 물건을 버리고, 벽에 페인트를 칠했다. 일요일 저녁, 12시간 동안 일한 뒤 그는 더 버틸 수 없었다. 페인트와 먼지를 뒤집어쓴 채 바닥에 그냥 주저앉았다.
그가 막 페인트칠을 끝낸 방은 비어 있었고, 천장에는 전등 하나만 달려 있었다. 불을 켜자 전등에서 나온 빛이 원뿔 모양을 이루며 바닥과 벽의 일부를 비추는 것이 보였다. 온몸이 지쳐 움직일 수 없었지만 머리는 여전히 돌아가고 있었고, 그는 어려운 문제를 풀고 싶어졌다. 그는 전등 빛이 비추는 면적이 얼마인지 궁금해졌다.

그림 1: 전등이 내는 빛의 예.
방의 바닥은 수평이고, 천장도 수평이며, 벽은 수직이다. 바닥은 볼록 다각형이다. (쉬운 데이터셋에서는 다각형이 축에 평행한 직사각형이다.) 전등은 방 천장의 어딘가에 달려 있다. 전등은 아래쪽으로 원뿔 모양의 빛을 낸다. 원뿔의 축은 수직이다.
주어지는 것은 방의 높이, 바닥의 모양, 전등의 위치, 그리고 전등이 낸 빛 원뿔의 꼭짓점 각도이다.
목표는 방 안에서 빛이 닿는 모든 면의 넓이 합을 구하는 것이다. 이 면 중 하나는 항상 바닥에 있다. 벽 일부에도 빛이 닿을 수 있다.
입력
입력의 첫 줄에는 테스트 케이스의 개수 가 주어진다. 각 테스트 케이스 앞에는 빈 줄이 하나 있다.
각 테스트 케이스는 여러 줄로 이루어진다. 첫 줄에는 공백으로 구분된 실수 , , , 가 주어진다. 처음 두 수는 전등의 수평 좌표이다. 세 번째 수는 방의 높이이자 전등의 수직 좌표이다. 마지막 수는 전등이 빛을 내는 각도이다. 전등에서 나오는 임의의 빛줄기와 원뿔 축 사이의 각은 이하이다.
두 번째 줄에는 바닥 꼭짓점의 개수 이 주어진다. 다음 개의 줄에는 각각 실수 , 두 개가 주어지며, 이는 번째 꼭짓점의 좌표이다. 좌표는 반시계 방향 순서로 주어진다. 바닥의 z 좌표는 0이다.
출력
각 테스트 케이스마다 전등의 빛이 직접 닿는 모든 면의 넓이 합을 한 줄에 실수 하나로 출력한다. 소수점 아래 최소 6자리까지 출력한다. 상대 오차 또는 절대 오차가 이하이면 정답으로 인정한다.