펭귄들의 행진

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

요약
각 얼음 조각을 목적지로 정했을 때, 거리 제한과 각 조각의 출발 횟수 제한을 만족시키며 모든 펭귄이 그곳으로 모일 수 있는지 최대 유량으로 판별하는 문제입니다.
난이도

보통10점 중 7점

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

문제

남극의 한 빙하 지대에 펭귄 여러 마리가 살고 있다. 각 펭귄은 바다에 떠 있는 여러 얼음 조각 위에 나뉘어 서 있다. 한 얼음 조각 위에 여러 마리의 펭귄이 있을 수도 있고, 펭귄이 한 마리도 없는 빈 얼음 조각도 있을 수 있다.

펭귄은 사회성이 높은 동물이라 모두 하나의 얼음 위에 모이고 싶어 한다. 이를 위해 얼음 조각 중 하나를 목적지로 정하고, 얼음과 얼음 사이를 점프해 이동하여 그 목적지 위로 전부 모이려고 한다. 다만 펭귄은 날 수 없기 때문에 너무 멀리 떨어진 얼음으로는 점프할 수 없다. 두 얼음 조각 사이의 유클리드 거리가 DD 이하일 때에만 그 사이를 점프해 오갈 수 있다.

한편 지구 온난화로 얼음 조각들이 녹고 있어, 펭귄이 여러 번 밟으면 부서져 바다 아래로 가라앉는 얼음도 있다. 펭귄들은 얼음 전문가이기 때문에 각 얼음이 정확히 몇 번의 도약을 견딜 수 있는지 알고 있다. 펭귄이 어떤 얼음에서 다른 얼음으로 점프하면, 떠난(딛고 있던) 얼음은 한 번 손상되지만 착지하는 얼음은 손상되지 않는다. 즉 ii번 얼음에서는 최대 mim_i번까지만 점프해서 떠날 수 있다.

모든 펭귄이 한 얼음 위에 모일 수 있는 목적지 얼음은 어떤 것들인지 구하여라.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다 (T≤100T \le 100).

각 테스트 케이스는 다음과 같이 구성된다.

  • 첫 줄에 얼음 조각의 개수 NN (1≤N≤1001 \le N \le 100)과 펭귄이 점프할 수 있는 최대 거리 DD (0≤D≤1000000 \le D \le 100000)가 주어진다. DD는 실수로 주어질 수 있다.
  • 이어지는 NN개의 줄에 각 얼음 조각의 정보 xix_i, yiy_i, nin_i, mim_i가 주어진다.
    • xix_i, yiy_i: 얼음의 좌표 (−10000≤xi,yi≤10000-10000 \le x_i, y_i \le 10000)
    • nin_i: 그 얼음 위에 서 있는 펭귄의 수 (0≤ni≤100 \le n_i \le 10)
    • mim_i: 그 얼음에서 펭귄이 점프해 떠날 수 있는 최대 횟수 (1≤mi≤2001 \le m_i \le 200)

얼음 조각의 번호는 입력에 주어진 순서대로 00번부터 매긴다.

출력

각 테스트 케이스마다, 모든 펭귄이 한곳에 모일 수 있는 목적지 얼음의 번호를 오름차순으로, 공백으로 구분하여 한 줄에 출력한다. 어떤 얼음으로도 모든 펭귄이 모일 수 없으면 그 줄에 −1-1을 출력한다.

예제3

  1. 예제 1

    입력
    2
    5 3.5
    1 1 1 1
    2 3 0 1
    3 5 1 1
    5 1 1 1
    5 4 0 1
    3 1.1
    -1 0 5 10
    0 0 3 9
    2 0 1 1
    
    예상 출력
    1 2 4
    -1
    
  2. 예제 2

    입력
    1
    1 0
    0 0 3 1
    
    예상 출력
    0
    
  3. 예제 3

    입력
    1
    2 5.0
    0 0 2 5
    3 0 2 5
    
    예상 출력
    0 1