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

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

와이파이 통신탑 업그레이드

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

요약
업그레이드한 타워의 사거리 안에 있는 모든 타워도 함께 업그레이드해야 한다는 조건에서 총점이 최대가 되도록 업그레이드할 타워 집합을 고른다.
난이도

보통10점 중 7점

유형
그래프, 그리디, DFS
정답자
아직 제출이 없습니다

문제

무선 통신탑 네트워크가 있다. 각 탑에는 도달 거리가 정해져 있고, 그 거리 이하에 있는 다른 탑으로 데이터를 보낼 수 있다.

지금 모든 탑은 구형 통신 규약 A를 쓴다. 대역폭이 더 좋은 신형 규약 B가 나왔고, 일부 탑을 B로 올리려고 한다.

제약이 하나 있다. 어떤 탑 TT가 신형 규약 B를 쓰면, TT의 도달 거리 안에 있는 모든 탑도 B를 써야 한다. 그래야 TT가 보낸 데이터를 알아들을 수 있다. 반대 방향은 필요 없다. 신형 규약 B를 쓰는 탑은 구형 규약 A를 쓰는 탑에서 데이터를 받아도 된다.

업그레이드에는 이득도 있고 설치 비용도 든다. 그래서 각 탑에는 신형 규약으로 올렸을 때의 가치를 나타내는 점수가 하나씩 붙어 있고, 이 점수는 양수일 수도 음수일 수도 있다. 업그레이드할 탑의 집합을 골라서 그 점수의 합을 최대로 만들어라. 한 탑도 고르지 않아도 되며, 그때 합은 0이다.

입력

첫 줄에 테스트 케이스 개수 TT가 주어진다.

각 테스트 케이스의 첫 줄에는 탑의 개수 nn이 주어진다. 이어지는 nn개의 줄에는 정수 네 개 xx, yy, rr, ss가 공백으로 구분되어 주어진다. 좌표 (x,y)(x, y)에 있는 탑의 도달 거리가 rr이고, 신형 규약으로 올렸을 때의 점수가 ss라는 뜻이다.

두 탑 사이의 거리는 유클리드 거리다. 탑 AA에서 탑 BB까지의 거리가 AA의 도달 거리 이하이면 AA는 BB로 데이터를 보낸다.

제한

  • 1≤T≤551 \le T \le 55
  • 1≤n≤5001 \le n \le 500
  • −10000≤x,y≤10000-10000 \le x, y \le 10000
  • 1≤r≤200001 \le r \le 20000
  • −1000≤s≤1000-1000 \le s \le 1000
  • 좌표가 같은 탑은 없다.

출력

각 테스트 케이스마다 한 줄씩 다음 형식으로 출력한다.

Case #X: score

XX는 1부터 시작하는 테스트 케이스 번호이고, score는 가장 좋게 골랐을 때의 점수 합이다.

예제5

  1. 예제 1

    입력
    1
    5
    0 1 7 10
    0 -1 7 10
    5 0 1 -15
    10 0 6 10
    15 1 2 -20
    
    예상 출력
    Case #1: 5
    
  2. 예제 2

    입력
    1
    1
    0 0 1 1000
    
    예상 출력
    Case #1: 1000
    
  3. 예제 3

    입력
    1
    2
    0 0 5 100
    3 4 5 -40
    
    예상 출력
    Case #1: 60
    
  4. 예제 4

    입력
    1
    2
    0 0 5 10
    3 4 1 -3
    
    예상 출력
    Case #1: 7
    
  5. 예제 5

    입력
    1
    3
    0 0 10 50
    6 8 1 -30
    100 100 1 20
    
    예상 출력
    Case #1: 40