BOJ 19462 Immigration
문제 내용
점 가 원점에서 시작하여 축 위에서 초당 의 속도로 양의 방향으로 이동하고 있습니다.
점 가 이동하기 시작한지 초 후에 점 가 위치에 등장하여 의 속도로 움직이기 시작합니다. 이 점 는 점 가 이동하기 시작한지 초 후에 각각 로 속도를 바꿉니다.
점 에는 카메라가 달려 있어서 에서 가 보이는 방향을 항상 바라보고 있습니다. 이때 이 카메라의 각속도의 절댓값의 최댓값을 구하세요.
입력
첫 줄에는 네 개의 정수 , , , 이 주어집니다. (, , )
다음 개의 줄에는 각각 세 개의 정수 , , 가 주어집니다. (, , )
일 수 있습니다. 시간 이후에 는 의 속도로 무한히 움직입니다. 는 와 충돌하지 않음이 보장됩니다.
출력
문제의 정답을 출력합니다. 출력값의 정답과의 절대 또는 상대 오차가 이하이면 정답으로 인정됩니다. 정답은 유한한 값임이 보장됩니다.
문제 풀이
스포일러
일단 를 원점에 고정하고 의 상대이동을 생각합니다. 이제 문제는 의 이동을 나타내는 각 선분 또는 반직선 위에서 최대의 절대 각속도를 찾는 문제가 됩니다.
어떤 선분이 주어졌을 때, 이 선분을 회전하여 기울기가 0인 직선 상에서 양의 방향으로 운동하도록 하고 인 시점을 시간 으로 두어도 문제가 없습니다. 각속도는 이므로, 이 상황에서 극좌표계로 식을 세우고 미분을 해 봅시다.
이제 항을 지우면 다음의 식을 얻습니다.
여기서 의 값은 내에서 움직이며, 자명하게 ()에서 최대 절댓값을 갖고 멀어질수록 감소합니다.
원점에서 직선으로 수선을 내리면 직각삼각형을 얻을 수 있고, 수선의 길이는 이므로 를 거리의 비율로 환산하여 다음의 식을 얻을 수 있습니다.
이제 각 선분에 대해 그 직선 상의 점과의 최소 거리와 그 거리를 갖는 시간을 계산하여, 최소 거리 지점이 선분 위에 있으면 그 점에 대한 값을, 아니라면 두 끝점 중 최댓값을 계산하여 그러한 모든 값들 중 최댓값을 출력하면 됩니다.