로켓 추진 호버크래프트
시간 제한2초메모리 제한512 MB
원점에서 +X 방향을 보고 출발하는 호버크래프트가 목표 지점 (x, y)에 도달하는 최소 시간을 구합니다. 속력 v와 회전 속도 w가 주어집니다.
문제
자율 주행하는 로켓 추진 호버크래프트를 프로그래밍하고 있다. 이 차량은 매우 빠르게 이동할 수 있지만 방향을 바꾸기는 어렵다. 공중에 떠서 움직이므로, 방향을 바꾸려면 방향 추력기를 분사해야 한다. 추력기는 차량이 전진 중이든 정지해 있든 상관없이 차량을 회전시킨다.
시험장인 염전은 2차원 직교 좌표계 격자로 표시되어 있다. 호버크래프트는 에서 출발하며, 처음에는 X축의 양의 방향을 바라보고 있다. 목표는 차량을 염전 위의 다른 지점 로 옮기는 것이다.
호버크래프트의 지면 속력은 초당 마일로 고정되어 있고, 회전 속도는 초당 라디안으로 고정되어 있다. 로켓 추력이 강해서 가속과 감속은 거의 순간적으로 이루어진다. 차량은 최고 속력에 즉시 도달하고, 그 속력에서도 같은 방식으로 바로 멈출 수 있다. 회전도 마찬가지여서, 고정된 속도로 즉시 회전을 시작하고 즉시 멈출 수 있다. 시계 방향과 반시계 방향 중 어느 쪽으로든 회전할 수 있다.
차량을 목표에 도달시키는 데 필요한 최소 시간을 구해야 한다. 제어 프로그램은 전진 시작, 전진 정지, 회전 시작, 회전 정지를 수행할 수 있으며, 각 동작은 한 번씩만 실행한다. 전진의 시작과 정지는 회전의 시작과 정지와 독립적으로 할 수 있다.
입력
각 테스트 케이스는 정확히 두 줄로 이루어진다.
첫 번째 줄에는 목표 위치를 마일 단위로 나타내는 정수 와 가 공백으로 구분되어 주어진다 (, ).
두 번째 줄에는 소수점 둘째 자리까지 표기된 실수 와 가 공백으로 구분되어 주어진다 (, ). 는 초당 마일 단위로 나타낸 고정 이동 속력이고, 는 어느 방향으로 회전하든 같은 초당 라디안 단위의 고정 회전 속도이다.
출력
차량을 에서 까지 보내는 데 걸리는 최소 시간을 초 단위의 실수 하나로 출력한다. 절대 오차가 이내이면 정답으로 인정한다.