제즈볼 (Jezzball)

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

제즈볼(JezzBall)은 직사각형 경기장 안에서 '원자'들이 튕겨 다니는 게임이다. 플레이어는 광선(벽)으로 공간을 막아 충분한 넓이를 가두면 다음 단계로 넘어간다. 이 문제에서는 좌표와 움직임이 모두 실수(연속)인 변형판을 다룬다. 단위는 픽셀이다.

경기장 크기는 1024 x 768 픽셀이다. 각 원자는 두께가 없는 점이다(공 모양이 아니다). 원자는 일정한 속력으로 움직이며, 경기장 경계($x = 0$, $x = 1024$, $y = 0$, $y = 768$)에 닿을 때만 에너지 손실 없이 튕겨 방향을 바꾼다. 원자끼리는 서로 부딪히지 않는다.

플레이어는 고정된 한 점에서 광선을 쏘아 경기장을 둘로 나눈다. 광선은 수평 또는 수직이며, 그 점에서 양쪽 방향으로 동시에(수직이면 위·아래, 수평이면 좌·우) 초당 200픽셀의 일정한 속력으로 양 끝이 각각 경기장 경계에 닿을 때까지 뻗어 나간다. 광선도 두께가 없다. 광선이 뻗는 동안 어떤 원자도 광선에 닿지 않으면 경기장이 성공적으로 나뉘고, 그렇지 않으면 목숨을 하나 잃는다.

다음 두 경우는 충돌로 세지 않는다: 원자가 뻗어 나가는 팔의 움직이는 끝점에 닿는 경우, 그리고 광선이 다 뻗은 바로 그 순간에 원자가 닿는 경우.

원자들의 초기 위치와 속도, 그리고 광선을 쏘는 고정된 점이 주어질 때, 광선(수평 또는 수직 중 안전한 쪽)이 완성되기 전에 어떤 원자와도 부딪히지 않도록 하려면 플레이어가 광선을 뻗기 시작할 때까지 기다려야 하는 최소 시간을 구하여라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스의 첫 줄에는 원자의 개수 $n$ ($1 \le n \le 10$)이 주어진다. 다음 줄에는 두 정수 $x$, $y$ ($0 < x < 1024$, $0 < y < 768$)가 주어지며, 이는 광선의 양 끝이 뻗어 나가기 시작하는 고정된 점이다. 이어지는 $n$개의 줄에는 각각 네 정수 $x$, $y$, $vx$, $vy$ ($0 < x < 1024$, $0 < y < 768$, $1 \le |vx| \le 200$, $1 \le |vy| \le 200$)가 주어지며, 이는 원자의 초기 위치 $(x, y)$와 속도(x축 방향 $vx$, y축 방향 $vy$)이다. 한 테스트 케이스 안의 모든 위치(광선을 쏘는 점과 원자들)는 서로 다르다. 입력은 $n = 0$인 줄로 끝나며, 이 줄은 처리하지 않는다. 테스트 케이스는 최대 25개이다.

출력

각 테스트 케이스마다 한 줄에, 플레이어가 수평 또는 수직 광선을 뻗기 시작해서 그리는 동안 어떤 원자와도 충돌하지 않게 되는 최소 시간을 소수점 아래 정확히 5자리까지 초 단위로 출력한다. 각 입력은 그러한 순간이 처음 나타나는 시점이 길이 $10^{-5}$초 이상인 열린 구간 안에 있도록 구성되어 있다. 처음 10000초 안에 그런 순간이 없으면 대신 Never를 출력한다.