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

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

비를 피하는 손님들

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

요약
손님의 위치와 속도, 우산의 위치, 그리고 남은 시간 t가 주어질 때, 각자 도달 가능한 우산에 최대 몇 명을 연결할 수 있는지 구한다.
난이도

보통10점 중 7점

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

문제

바닷가 별장의 정원에서 파티를 열고 있습니다. 파티는 대성공이고 모두가 즐거워하고 있습니다. 따뜻하고 맑은 저녁, 바다에서 불어오는 상쾌한 바람이 소금기 어린 공기를 실어 옵니다. 그런데 손님 중 한 명이 기상 예보 일을 합니다. 그가 갑자기 소리칩니다. "이 바람을 알아요! 몇 분 안에 폭우가 쏟아질 거예요!" 가장 좋은 옷을 차려입은 손님들은 비에 젖고 싶어 하지 않습니다.

정원 곳곳에는 손님을 비로부터 지켜 줄 우산이 몇 개 놓여 있습니다. 우산은 작아서 한 우산에는 한 명만 들어갈 수 있고, 두 손님은 절대 우산을 함께 쓰지 않습니다. 손님마다 달리는 속도도 서로 다릅니다.

비가 쏟아지기 전에 최대 몇 명의 손님이 우산에 도달할 수 있을까요?

모든 손님의 위치와 속도, 우산의 위치, 그리고 비가 내리기까지 남은 시간이 주어질 때, 최대 몇 명의 손님이 우산에 도달할 수 있는지 구하세요. 손님은 자신의 속도와 남은 시간의 곱이 손님과 우산 사이의 유클리드 거리 이상일 때 그 우산에 도달할 수 있습니다. 각 우산은 최대 한 명의 손님만 사용할 수 있습니다.

입력

첫 번째 줄에 테스트 케이스의 개수가 주어집니다.

각 테스트 케이스의 첫 줄에는 비가 내리기까지 남은 시간 tt(분)가 주어집니다 (1≤t≤51 \le t \le 5). 다음 줄에는 손님의 수 mm이 주어지고 (1≤m≤30001 \le m \le 3000), 이어지는 mm개의 줄에는 각 손님의 xx좌표, yy좌표, 그리고 분당 이동 속도 sis_i가 정수로 공백으로 구분되어 주어집니다 (1≤si≤30001 \le s_i \le 3000). 그다음 줄에는 우산의 수 nn이 주어지고 (1≤n≤30001 \le n \le 3000), 이어지는 nn개의 줄에는 각 우산의 정수 좌표가 공백으로 구분되어 주어집니다.

모든 좌표의 절댓값은 1000010000보다 작습니다.

출력

각 테스트 케이스마다 먼저 "Scenario #i:" 줄을 출력합니다. 여기서 ii는 1부터 시작하는 테스트 케이스 번호입니다. 그다음 줄에 비가 내리기 전에 우산에 도달할 수 있는 손님의 최대 수를 출력합니다. 연속한 두 테스트 케이스 사이에는 빈 줄을 하나 출력합니다.

예제3

  1. 예제 1

    입력
    2
    1
    2
    1 0 3
    3 0 3
    2
    4 0
    6 0
    1
    2
    1 1 2
    3 3 2
    2
    2 2
    4 4
    
    예상 출력
    Scenario #1:
    2
    
    Scenario #2:
    2
    
  2. 예제 2

    입력
    1
    1
    1
    0 0 5
    1
    3 4
    
    예상 출력
    Scenario #1:
    1
    
  3. 예제 3

    입력
    1
    1
    1
    0 0 4
    1
    3 4
    
    예상 출력
    Scenario #1:
    0