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

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

거대 n-pus의 습격

면접 대비

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

요약
p명의 해적을 n개의 촉수에 배정해 선장이 머리에 가장 빨리 도달하도록 한다. 각 해적은 촉수 하나를 붙잡고, 모두 붙잡히면 선장이 출발한다.
난이도

보통10점 중 7점

유형
이분 탐색, 그리디, 정렬, 수학
정답자
아직 제출이 없습니다

문제

해적선이 거대한 n-pus의 공격을 받고 있다. n-pus는 문어와 비슷하지만 촉수가 nn개인 괴물이다. 이 괴물의 촉수 nn개와 머리가 갑판을 뚫고 나와 배를 부수고 있다. 선장은 괴물을 막으려고 머리를 향해 돌진하지만, 촉수 하나에 곧바로 튕겨 나온다. 촉수들이 자유롭게 움직이는 한 선장은 머리에 닿을 수 없다.

하지만 선장은 혼자가 아니다. 갑판 곳곳에는 선장의 명령을 따를 준비가 된 해적 pp명(p≥np \ge n)이 흩어져 있다. 선장의 작전은 이렇다. 촉수마다 해적을 한 명씩 보내 붙잡게 하는 것이다. 선장은 모든 촉수가 해적에게 붙잡힌 뒤에야 머리를 향해 출발하며, 머리에 닿는 순간 괴물은 즉시 죽는다.

선장과 각 해적은 자신의 목표 지점까지 일정한 속력으로 직선으로 이동하며, 그 무엇에도 방해받지 않는다. 촉수는 배정된 해적이 도달하는 순간 붙잡힌 것으로 간주하고, 선장은 마지막 촉수가 붙잡히는 즉시 출발할 수 있다.

선장이 n-pus를 가능한 한 가장 이른 시각에 처치하도록 해적을 촉수에 배정하고, 그 가장 이른 시각을 구하라.

입력

첫 줄에는 테스트 케이스의 수를 나타내는 정수 TT가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.

  • 정수 nn과 pp (1≤n≤p≤1001 \le n \le p \le 100)가 주어지는 한 줄. 각각 촉수의 수와 (선장을 제외한) 해적의 수이다.
  • 정수 xcx_c, ycy_c, vcv_c가 주어지는 한 줄. 선장의 좌표와 속력이다.
  • pp개의 줄. 각 줄에는 정수 xix_i, yiy_i, viv_i가 주어지며, 한 해적의 좌표와 속력이다.
  • 정수 xhx_h, yhy_h가 주어지는 한 줄. n-pus 머리의 좌표이다.
  • nn개의 줄. 각 줄에는 정수 xjx_j, yjy_j가 주어지며, 한 촉수의 좌표이다.

모든 좌표는 0≤x,y≤100000 \le x, y \le 10000을, 모든 속력은 1≤v≤1001 \le v \le 100을 만족한다. 선장, 해적, 머리, 촉수는 모두 크기가 없는 점으로 취급하며, 위치는 서로 모두 다르다. 모두 목표를 향해 자신의 속력으로 직선으로 이동한다.

출력

각 테스트 케이스마다, 선장이 n-pus를 처치하는 데 걸리는 최소 시간을 소수점 아래 정확히 6자리로 반올림하여 한 줄에 출력한다 (예: 1.500000).

예제1

  1. 예제 1

    입력
    3
    3 3
    2 0 1
    0 0 2
    1 0 3
    3 0 4
    2 3
    0 1
    1 1
    4 1
    1 3
    0 0 1
    3 0 1
    4 0 1
    7 0 2
    0 1
    4 2
    3 3
    0 0 2
    2 0 3
    3 0 1
    4 0 2
    0 1
    3 1
    4 1
    5 1
    
    예상 출력
    3.500000
    2.802776
    1.500000