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

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

빛이 있으라

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

요약
최대 2000개의 구형 풍선이 최대 15개의 점광원을 가리는 상황에서 최대 R개의 풍선을 제거해 목표점의 총 조도를 최대화하고 그 값을 기약분수로 출력하는 문제입니다.
난이도

보통10점 중 7점

유형
기하, 비트 연산, 조합론, 완전 탐색
정답자
아직 제출이 없습니다

문제

몇 개의 광원과 여러 개의 구형 풍선이 있다고 합시다. 모든 광원은 점광원으로 모델링할 수 있을 만큼 작으며, 모든 방향으로 빛을 냅니다. 풍선의 표면은 빛을 흡수하며 반사하지 않습니다. 놀랍게도 이 세계에서는 풍선끼리 겹칠 수 있습니다.

당신은 목표 지점에서의 총 조도(illumination intensity)를 가능한 한 높이고 싶습니다. 이를 위해 빛을 가리는 풍선 중 일부를 제거할 수 있습니다. 그러나 제거 비용 때문에 제거할 수 있는 풍선의 수에는 제한이 있습니다. 목표 지점의 조도를 최대로 만들도록 적절한 풍선 집합을 제거하려고 합니다.

입력

입력은 여러 개의 데이터셋으로 이루어집니다. 각 데이터셋의 형식은 다음과 같습니다.

N M R
S1x S1y S1z S1r
...
SNx SNy SNz SNr
T1x T1y T1z T1b
...
TMx TMy TMz TMb
Ex Ey Ez

데이터셋의 첫 줄에는 공백으로 구분된 세 양의 정수 NN, MM, RR이 주어집니다. NN은 풍선의 개수로 20002000을 넘지 않습니다. MM은 광원의 개수로 1515를 넘지 않습니다. RR은 제거할 수 있는 풍선의 개수로 NN을 넘지 않습니다.

이어지는 NN개의 줄에는 각각 공백으로 구분된 네 정수가 있습니다. (Six,Siy,Siz)(S_{ix}, S_{iy}, S_{iz})는 ii번째 풍선의 중심이고 SirS_{ir}은 그 반지름입니다.

이어지는 MM개의 줄에는 각각 공백으로 구분된 네 정수가 있습니다. (Tjx,Tjy,Tjz)(T_{jx}, T_{jy}, T_{jz})는 jj번째 광원의 위치이고 TjbT_{jb}는 그 밝기입니다.

데이터셋의 마지막 줄에는 공백으로 구분된 세 정수가 있습니다. (Ex,Ey,Ez)(E_x, E_y, E_z)는 목표 지점의 위치입니다.

SixS_{ix}, SiyS_{iy}, SizS_{iz}, TjxT_{jx}, TjyT_{jy}, TjzT_{jz}, ExE_x, EyE_y, EzE_z는 −500-500보다 크고 500500보다 작습니다. SirS_{ir}은 00보다 크고 500500보다 작습니다. TjbT_{jb}는 00보다 크고 8000080000보다 작습니다.

목표 지점에서 jj번째 광원의 빛은, 이를 가리는 풍선이 없다면 거리의 제곱에 반비례하는 세기를 가집니다. 즉

Tjb(Tjx−Ex)2+(Tjy−Ey)2+(Tjz−Ez)2\frac{T_{jb}}{(T_{jx}-E_x)^2 + (T_{jy}-E_y)^2 + (T_{jz}-E_z)^2}

총 조도는 목표 지점에 도달하는 광원들에 대한 이 값들의 합입니다.

다음을 가정해도 됩니다.

  • 목표 지점과 임의의 광원 사이의 거리는 11 이상입니다.
  • 모든 ii와 jj에 대해, SirS_{ir}이 ε\varepsilon(∣ε∣<0.01|\varepsilon| < 0.01)만큼 바뀌어도 ii번째 풍선이 jj번째 광원을 가리는지 여부는 바뀌지 않습니다.

입력의 끝은 세 개의 0으로 이루어진 줄로 표시됩니다.

출력

각 데이터셋에 대해, 최대 RR개의 풍선을 제거한 뒤 목표 지점에서 얻을 수 있는 최대 총 조도를 한 줄에 출력하세요.

모든 좌표, 반지름, 밝기가 정수이므로 목표 지점에 도달하는 각 광원은 정수 DjD_j에 대해 Tjb/DjT_{jb}/D_j 꼴의 세기를 기여하며, 따라서 최대 총 조도는 항상 유리수입니다. 이를 기약분수 p/q 형태로 출력하세요. 여기서 q는 양의 정수, p는 음이 아닌 정수이고 gcd⁡(p,q)=1\gcd(p, q) = 1입니다. 최대 조도가 00이면 0/1을 출력하세요.

예제1

  1. 예제 1

    입력
    12 5 4
    0 10 0 1
    1 5 0 2
    1 4 0 2
    0 0 0 2
    10 0 0 1
    3 -1 0 2
    5 -1 0 2
    10 10 0 15
    0 -10 0 1
    10 -10 0 1
    -10 -10 0 1
    10 10 0 1
    0 10 0 240
    10 0 0 200
    10 -2 0 52
    -10 0 0 100
    1 1 0 2
    0 0 0
    12 5 4
    0 10 0 1
    1 5 0 2
    1 4 0 2
    0 0 0 2
    10 0 0 1
    3 -1 0 2
    5 -1 0 2
    10 10 0 15
    0 -10 0 1
    10 -10 0 1
    -10 -10 0 1
    10 10 0 1
    0 10 0 260
    10 0 0 200
    10 -2 0 52
    -10 0 0 100
    1 1 0 2
    0 0 0
    5 1 3
    1 2 0 2
    -1 8 -1 8
    -2 -3 5 6
    -2 1 3 3
    -4 2 3 5
    1 1 2 7
    0 0 0
    5 1 2
    1 2 0 2
    -1 8 -1 8
    -2 -3 5 6
    -2 1 3 3
    -4 2 3 5
    1 1 2 7
    0 0 0
    0 0 0
    
    예상 출력
    7/2
    18/5
    7/6
    0/1