거대 n-pus의 습격
면접 대비시간 제한1초메모리 제한128 MB
p명의 해적을 n개의 촉수에 배정해 선장이 머리에 가장 빨리 도달하도록 한다. 각 해적은 촉수 하나를 붙잡고, 모두 붙잡히면 선장이 출발한다.
문제
해적선이 거대한 n-pus의 공격을 받고 있다. n-pus는 문어와 비슷하지만 촉수가 개인 괴물이다. 이 괴물의 촉수 개와 머리가 갑판을 뚫고 나와 배를 부수고 있다. 선장은 괴물을 막으려고 머리를 향해 돌진하지만, 촉수 하나에 곧바로 튕겨 나온다. 촉수들이 자유롭게 움직이는 한 선장은 머리에 닿을 수 없다.
하지만 선장은 혼자가 아니다. 갑판 곳곳에는 선장의 명령을 따를 준비가 된 해적 명()이 흩어져 있다. 선장의 작전은 이렇다. 촉수마다 해적을 한 명씩 보내 붙잡게 하는 것이다. 선장은 모든 촉수가 해적에게 붙잡힌 뒤에야 머리를 향해 출발하며, 머리에 닿는 순간 괴물은 즉시 죽는다.
선장과 각 해적은 자신의 목표 지점까지 일정한 속력으로 직선으로 이동하며, 그 무엇에도 방해받지 않는다. 촉수는 배정된 해적이 도달하는 순간 붙잡힌 것으로 간주하고, 선장은 마지막 촉수가 붙잡히는 즉시 출발할 수 있다.
선장이 n-pus를 가능한 한 가장 이른 시각에 처치하도록 해적을 촉수에 배정하고, 그 가장 이른 시각을 구하라.
입력
첫 줄에는 테스트 케이스의 수를 나타내는 정수 가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.
- 정수 과 ()가 주어지는 한 줄. 각각 촉수의 수와 (선장을 제외한) 해적의 수이다.
- 정수 , , 가 주어지는 한 줄. 선장의 좌표와 속력이다.
- 개의 줄. 각 줄에는 정수 , , 가 주어지며, 한 해적의 좌표와 속력이다.
- 정수 , 가 주어지는 한 줄. n-pus 머리의 좌표이다.
- 개의 줄. 각 줄에는 정수 , 가 주어지며, 한 촉수의 좌표이다.
모든 좌표는 을, 모든 속력은 을 만족한다. 선장, 해적, 머리, 촉수는 모두 크기가 없는 점으로 취급하며, 위치는 서로 모두 다르다. 모두 목표를 향해 자신의 속력으로 직선으로 이동한다.
출력
각 테스트 케이스마다, 선장이 n-pus를 처치하는 데 걸리는 최소 시간을 소수점 아래 정확히 6자리로 반올림하여 한 줄에 출력한다 (예: 1.500000).