Cosmic Cleaner

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

요약
각 테스트 케이스에서 서로 겹치지 않는 n개의 소행성 중 세척 구 내부에 들어가는 부분의 부피 합을 구한다.
난이도

보통10점 중 6점

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

문제

소행성 nn개가 소행성대를 이루고 있다. 이 소행성들은 중력 때문에 행성 주위를 공전하며, 현재 소행성과 행성은 서로 충돌하지 않는다. 청소부에게 행성을 없애라는 명령이 내려졌다. 청소부는 첨단 기술로 행성을 소멸시키며, 행성 중심에 가까운 것은 무엇이든 즉시 지워진다. 천체를 완전한 구로 볼 때, 임무를 수행한 뒤 소행성에 속하지만 청소되는 영역의 총 부피를 구할 수 있는가?

천체들은 서로 교차하지 않는다. 다시 말해 두 천체가 공유하는 점은 없다.

입력

입력은 여러 테스트 케이스로 이루어진다. 첫째 줄에는 테스트 케이스의 수 TT가 주어진다. 이어서 모든 테스트 케이스가 주어진다. 각 테스트 케이스는 다음과 같다.

첫째 줄에는 정수 nn이 주어진다.

다음 nn개 줄에는 각각 네 정수 xx, yy, zz, rr이 주어지며, 이는 중심이 (x,y,z)(x, y, z)이고 반지름이 rr인 소행성을 나타낸다.

마지막 줄에는 네 정수 x′x', y′y', z′z', r′r'이 주어진다. 이는 청소 영역의 중심이기도 한 행성의 중심이 (x′,y′,z′)(x', y', z')에 있고, 청소부의 영향이 미치는 영역의 반지름이 행성의 반지름보다 큰 r′r'임을 나타낸다.

출력

각 테스트 케이스마다 한 줄에 “Case #x: y”를 출력한다(따옴표 제외). xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 이 테스트 케이스의 답이며 절대 오차 또는 상대 오차가 10−610^{-6} 이하여야 한다.

형식적으로, 답이 aa이고 출제진의 답이 bb일 때 ∣a−b∣/max⁡{1,∣b∣}≤10−6|a-b|/\max\{1,|b|\} \le 10^{-6}이면 정답으로 인정된다.

제한

  • 1≤T≤60001 \le T \le 6000
  • 1≤n≤1001 \le n \le 100
  • −103≤x,y,z,x′,y′,z′≤103-10^3 \le x, y, z, x', y', z' \le 10^3
  • 1≤r,r′≤1031 \le r, r' \le 10^3

힌트

다음 그림은 예제 테스트 케이스를 나타낸다. 영향 영역은 빨간 구 안쪽이고, 소행성은 예제에 나온 순서대로 주황, 파랑, 초록으로 칠해져 있다.

예제1

  1. 예제 1

    입력
    1
    3
    5 5 5 2
    -6 -7 6 1
    6 -5 0 3
    1 -1 0 10
    
    예상 출력
    Case #1: 142.76246874761383764962