제즈볼 (Jezzball)

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

요약
최대 열 개의 원자가 튕겨 다니는 경기장에서 고정된 점에서 수평 또는 수직 광선을 그을 때, 어떤 원자도 광선에 닿지 않는 가장 이른 시각을 구한다.
난이도

어려움10점 중 8점

유형
기하, 시뮬레이션, 수학, 구현
정답자
아직 제출이 없습니다

문제

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

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

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

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

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

입력

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

출력

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

예제3

  1. 예제 1

    입력
    3
    700 420
    360 290 170 44
    900 150 -53 20
    890 100 130 -100
    4
    10 10
    1 1 192 144
    513 385 192 144
    1023 767 -192 -144
    511 383 -192 -144
    0
    
    예상 출력
    2.80094
    Never
    
  2. 예제 2

    입력
    1
    512 384
    100 100 1 1
    0
    
    예상 출력
    0.00000
    
  3. 예제 3

    입력
    1
    700 420
    360 290 170 44
    0
    
    예상 출력
    1.79000