만드는 중입니다

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

무도회장 조명

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

요약
직사각형 안의 점광원과 서로 겹치지 않는 원기둥들이 있을 때, 빛이 장애물에 막히지 않고 곧게 닿을 수 있는 벽 둘레의 총 길이를 구한다.
난이도

어려움10점 중 9점

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

문제

ICPC 세계 대회 결승전이 커다란 무도회장을 갖춘 고급 호텔에서 열립니다. 이 무도회장에서 뷔페가 제공되며, 주최 측은 벽면을 역대 우승 팀들의 사진으로 장식하려고 합니다.

특정 팀만 우대한다는 비판을 피하기 위해, 모든 사진은 충분히 밝게 비춰져야 합니다. 즉, 각 사진은 최소한 하나의 전구로부터 직접 빛을 받아야 합니다. 그 결과 무도회장의 외벽(둘레)은 사진을 걸 수 있는 밝은 구간과 사진을 걸 수 없는 어두운 구간으로 나뉩니다.

위에서 내려다본 무도회장은 축에 평행한 직사각형이며, 왼쪽 아래 꼭짓점이 (0,0)(0, 0), 오른쪽 위 꼭짓점이 (X,Y)(X, Y)입니다. 내부에는 여러 개의 전구와 여러 개의 기둥이 있습니다. 모든 기둥은 바닥에서 천장까지 이어지는 원기둥이므로, 빛은 기둥을 통과할 수도 넘어갈 수도 없습니다. 위에서 본 각 기둥은 하나의 원입니다. 각 전구는 하나의 점이며 모든 방향으로 빛을 냅니다.

외벽 위의 점 pp가, 어떤 전구에서 출발하여 pp에서 끝나고 어떤 기둥과도 닿거나 관통하지 않는 직선 광선(선분)을 가질 때, 점 pp는 밝다고 합니다.

주어진 평면도에서 외벽의 밝은 부분들의 전체 길이를 구하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다.

각 테스트 케이스의 첫 줄에는 네 정수 LL, CC, XX, YY가 주어집니다. 각각 전구의 수, 기둥의 수, 무도회장의 가로 길이, 세로 길이입니다.

이어지는 LL개의 줄에는 각각 전구의 좌표 xx, yy가 주어집니다. 그다음 CC개의 줄에는 각각 기둥 중심의 좌표 xx, yy와 반지름 rr가 주어집니다.

제약: 1≤L,C≤1031 \le L, C \le 10^3, 4≤X,Y≤1064 \le X, Y \le 10^6. 모든 좌표에 대해 0<x<X0 < x < X, 0<y<Y0 < y < Y입니다(전구와 기둥 중심 모두). 모든 반지름은 양수입니다. 어떤 두 기둥도 겹치지 않지만 서로 닿을 수는 있으며, 어떤 기둥도 무도회장 경계에 닿거나 교차하지 않습니다. 어떤 전구도 기둥 내부나 경계 위에 있지 않으며, 두 전구가 같은 위치에 있지 않습니다.

입력의 끝은 0 0 0 0으로 이루어진 줄이며, 이 줄은 처리하지 않습니다.

입력은 표준 입력으로 읽습니다.

출력

각 테스트 케이스마다 외벽의 밝은 부분들의 전체 길이를 한 줄에 출력합니다.

값은 소수점 아래 정확히 네 자리까지의 실수로 출력하며, 마지막 자리는 올림합니다(즉, 소수점 넷째 자리에서 올림).

출력은 표준 출력으로 씁니다.

예제1

  1. 예제 1

    입력
    2 1 8 8
    6 6
    2 6
    4 4 2
    1 4 7 7
    3 3
    2 4 1
    4 2 1
    2 2 1
    4 4 1
    2 2 9 7
    1 2
    5 5
    3 3 2
    7 5 1
    0 0 0 0
    
    예상 출력
    28.0000
    0.0000
    25.8214