선박 충돌

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

요약
각 보트가 일정한 속도로 움직일 때 어떤 두 보트가 거리 r 이내로 접근하는 최초 시각을 구하고, 그런 순간이 없으면 충돌이 없다고 출력한다.
난이도

보통10점 중 7점

유형
기하, 구현, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

좁고 제한된 수역에 있는 배에게는 다른 배들의 통행이 큰 위험 요소가 될 수 있다. 같은 구역에 통행량이 많을수록 충돌 위험도 커진다.

당신의 임무는 통행 상황을 관찰하여 충돌이 일어나기 전에 충돌 가능성이 높은 상황을 미리 감지하는 것이다. 각 배의 위치, 방향, 속도를 감지하는 센서가 있다. 방향과 속도가 일정하게 유지된다고 가정할 때, 배들 중 어느 하나라도 서로 충돌하게 될지 판단하라. 두 배가 주어진 거리 이내로 가까워지면 충돌한 것으로 본다.

입력

첫째 줄에는 뒤따르는 테스트 케이스의 수를 나타내는 정수 cc가 주어진다. 각 테스트 케이스는 두 수 nn과 rr이 있는 줄로 시작하는데, nn은 배의 수, rr은 충돌 거리이다. 두 배가 서로 rr미터 이내로 가까워지면 충돌한 것으로 본다. 배의 수는 1000척을 넘지 않는다. 각 배는 네 수 xx, yy, dd, ss가 있는 줄로 표현된다. xx와 yy는 공통 원점으로부터 각각 동쪽과 북쪽으로의 거리로 배의 현재 위치를 나타내며, −1000-1000 이상 10001000 이하이다. 호수는 충분히 작아 평평한 평면으로 모델링할 수 있다. dd는 배가 향하는 방향으로, 북쪽을 기준으로 시계 방향으로 잰 각도(도 단위)이다(따라서 동쪽은 9090도이다). ss는 배의 속도로 초당 미터(m/s) 단위이며, 0.0010.001 이상 10001000 이하이다. rr, xx, yy, dd, ss는 반드시 정수는 아니다. 입력 데이터는 xx, yy, dd, ss 중 어느 값을 10−610^{-6} 이하로 바꾸어도 정답이 달라지지 않도록 주어진다.

출력

각 테스트 케이스마다, 배들 중 어느 하나라도 서로 rr미터 이내로 가까워지기까지 걸리는 시간(초)을 가장 가까운 정수로 반올림하여 한 줄에 출력한다. 어떤 배도 서로 충돌하지 않는다면, 다음 줄을 출력한다.

No collision.

예제1

  1. 예제 1

    입력
    2
    2 5
    0 0 90 1
    10 10 180 1
    2 10
    0 0 0 0
    8 8 270 1
    
    예상 출력
    6
    2