시작점과 총구의 초기 각도와 회전 속도가 주어질 때 회전하는 총구가 따라잡을 수 있는 가장 빠른 이동 속도를 구합니다.
어려움9게임 이론기하수학아직 제출이 없습니다시간 제한2초메모리 제한256 MB당신은 적에게서 달아나는 중이다. 적은 레이저 총을 든 저격수이고, 한 번이라도 맞으면 그대로 끝난다. 그래서 얼마나 빨리 달려야 살아남는지 알고 싶다.
당신과 저격수는 xy 평면 위에 있다. x축은 오른쪽, y축은 위쪽을 향한다. 평면은 무한히 넓고, 레이저나 당신의 이동을 막는 장애물은 없다.
저격수와 총은 (0,0)에 있고 움직이지 않는다. 총은 단위 시간마다 최대 ω도까지 시계 방향이나 반시계 방향으로 계속 회전하며, 저격수는 언제든지 회전 방향을 바꿀 수 있다. 시각 0에 총은 x축의 양의 방향에서 반시계 방향으로 θ도 돌아간 방향을 향한다.
당신은 (x,y)에서 출발해 속력 v 이하로 어느 방향으로든 움직일 수 있고, v 값은 당신이 정한다. 총이 당신의 위치를 향하는 순간 바로 맞으므로, 레이저가 날아오는 시간은 무시한다. 당신은 점이고, 레이저는 (0,0)을 끝점으로 하는 반직선이다.
당신과 저격수가 모두 최선으로 움직일 때, 저격수가 유한한 시간 안에 당신을 맞히는 가장 큰 속력 v를 구하여라.
첫째 줄에 정수 x, y, θ, ω가 공백으로 구분되어 주어진다.
시각 0에 총은 당신의 위치를 향하지 않는다.
가장 큰 속력 v를 소수점 아래 여덟째 자리까지 반올림해 한 줄에 출력한다. printf("%.8f")가 만드는 형식과 같다. 배정밀도 실수로 올바르게 계산했을 때 마지막 자리가 달라질 만큼 반올림 경계에 가까운 입력은 주어지지 않는다.