만드는 중입니다

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

한여름 밤의 꿈

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

요약
목격 기록과 물약 투여 시각을 따라가며 물약을 마신 사람이 처음 보게 되는 상대를 정하고, 서로 사랑하는 쌍의 수를 센다.
난이도

보통10점 중 7점

유형
시뮬레이션, 구현, 정렬, 기하
정답자
아직 제출이 없습니다

문제

희극 한여름 밤의 꿈에서 헬레나는 데메트리우스를 사랑하고, 데메트리우스는 허미아를 사랑하며, 허미아와 라이샌더는 서로 사랑한다. 허미아의 아버지가 딸을 데메트리우스와 결혼시키려 하자 허미아와 라이샌더는 함께 도망친다. 데메트리우스는 두 사람을 쫓고, 헬레나는 데메트리우스를 쫓는다. 이 소동을 알게 된 요정들은 자기들 장난에 쓰려던 사랑의 묘약을 인간의 문제를 푸는 데 돌려쓰기로 한다. 잠든 사람의 눈꺼풀에 묘약을 바르면 그 사람은 깨어난 뒤 처음 본 상대에게 반한다. 그런데 묘약을 바르는 요정 퍽은 아직 인간을 구별하지 못해서 엉뚱한 사람에게 묘약을 바른다.

퍽의 실수 끝에 실제로 몇 쌍의 커플이 생기는지 세어라. 커플은 서로를 사랑하는 두 사람이다.

각 사람이 언제 어디에서 목격되었는지, 그리고 묘약이 언제 발렸는지가 주어진다. 사람이 볼 수 있는 거리 dd도 주어진다. 사람 vv에게 묘약이 발린 시각부터, vv는 자신과의 거리가 dd 이하가 된 첫 번째 사람에게 반한다. 퍽이 묘약을 바르는 그 순간에 이미 vv의 시야에 들어와 있는 사람도 후보가 된다. 그 첫 시각에 시야에 들어와 있는 사람이 여러 명이면 vv는 그중 가장 가까운 사람에게 반한다. 두 후보의 거리가 같아지는 입력은 주어지지 않는다. 거리는 유클리드 거리이고, 거리가 정확히 dd이면 시야 안이다. 자기 자신에게 반하는 일은 없고, 시야에 아무도 들어오지 않으면 vv는 아무도 사랑하지 않는다.

입력

첫 줄에 데이터 세트의 개수 KK(K≥1K \ge 1)가 주어진다. 이어서 KK개의 데이터 세트가 다음 형식으로 주어진다.

데이터 세트의 첫 줄에 두 정수 nn, dd가 주어진다. 1≤n≤1001 \le n \le 100은 사람의 수, 0≤d≤1000 \le d \le 100은 사람이 볼 수 있는 거리이다.

다음으로 11번부터 nn번까지 사람의 정보가 주어진다. 사람 ii에 대해 먼저 한 줄에 두 정수 pip_i, mim_i가 주어진다. −1≤pi≤104-1 \le p_i \le 10^4은 사람 ii에게 묘약이 발린 시각이고, pi=−1p_i = -1은 묘약이 발리지 않았다는 뜻이다. 0≤mi≤1000 \le m_i \le 100은 ii가 목격된 위치의 개수이다. 그다음 줄에 세 정수 xi,jx_{i,j}, yi,jy_{i,j}, ti,jt_{i,j}가 mim_i번 반복되어 주어진다. −1000≤xi,j,yi,j≤1000-1000 \le x_{i,j}, y_{i,j} \le 1000은 ii가 jj번째로 목격된 좌표이고, ti,j≤104t_{i,j} \le 10^4은 그 목격 시각이다. 각 사람의 목격 정보는 ti,jt_{i,j}가 증가하는 순서로 주어진다.

사람 ii는 시각 ti,jt_{i,j}부터 다음 목격 시각 ti,j+1t_{i,j+1}까지, 다음 목격이 없으면 시간이 끝날 때까지 좌표 (xi,j,yi,j)(x_{i,j}, y_{i,j})에 머문다. 첫 목격 이전에는 멀리 떨어진 곳에 있어서 아무도 그를 보지 못하고 그도 아무도 보지 못한다. mi=0m_i = 0인 사람은 끝까지 멀리 있다.

묘약을 바르는 시각은 서로 다르고, 목격 시각과도 겹치지 않는다. 서로 다른 두 사람이 같은 시각에 목격되는 경우는 있다.

출력

각 데이터 세트마다 먼저 한 줄에 Data Set x:를 출력한다. 여기서 xx는 11부터 세는 데이터 세트의 번호이다. 그다음 한 줄에 커플의 수, 즉 서로를 사랑하는 두 사람 쌍의 개수를 출력한다. 각 데이터 세트 뒤에 빈 줄을 하나 출력한다.

예제3

  1. 예제 1

    입력
    1
    4 4
    -1 2
    0 0 0 10 10 9
    5 1
    9 8 4
    7 2
    2 1 3 8 9 6
    1 3
    3 2 2 13 9 6 4 9 8
    
    예상 출력
    Data Set 1:
    1
    
  2. 예제 2

    입력
    1
    2 0
    5 1
    7 -7 1
    6 1
    7 -7 2
    
    예상 출력
    Data Set 1:
    1
    
  3. 예제 3

    입력
    3
    4 4
    -1 2
    0 0 0 10 10 9
    5 1
    9 8 4
    7 2
    2 1 3 8 9 6
    1 3
    3 2 2 13 9 6 4 9 8
    3 10
    1 1
    0 0 0
    4 1
    5 0 2
    5 1
    1 0 3
    6 3
    50 1
    0 0 0
    51 1
    2 0 1
    52 1
    100 0 2
    53 1
    102 0 3
    54 1
    500 0 4
    55 1
    105 0 5
    
    예상 출력
    Data Set 1:
    1
    
    Data Set 2:
    0
    
    Data Set 3:
    2