BOJ 19462 Immigration

BOJ 19462 Immigration

문제 링크:

문제 내용

PP가 원점에서 시작하여 xx축 위에서 초당 uu의 속도로 양의 xx 방향으로 이동하고 있습니다.

PP가 이동하기 시작한지 t0t_0초 후에 점 QQ(x0,y0)(x_0, y_0) 위치에 등장하여 (v0x,v0y)(v_{0x}, v_{0y})의 속도로 움직이기 시작합니다. 이 점 QQ는 점 PP가 이동하기 시작한지 t1,t2,,tnt_1, t_2, \cdots, t_n초 후에 각각 (vix,viy)(v_{ix}, v_{iy})로 속도를 바꿉니다.

PP에는 카메라가 달려 있어서 PP에서 QQ가 보이는 방향을 항상 바라보고 있습니다. 이때 이 카메라의 각속도의 절댓값의 최댓값을 구하세요.

입력

첫 줄에는 네 개의 정수 uu, x0x_0, y0y_0, nn이 주어집니다. (1u1001 \le u \le 100, x0,y0108|x_0|, |y_0| \le 10^8, 0n1050 \le n \le 10^5)

다음 n+1n+1개의 줄에는 각각 세 개의 정수 tit_i, vixv_{ix}, viyv_{iy}가 주어집니다. (0ti1060 \le t_i \le 10^6, vix,viy100|v_{ix}|, |v_{iy}| \le 100, t0<t1<<tnt_0 < t_1 < \cdots < t_n)

(vix,viy)=(0,0)(v_{ix}, v_{iy}) = (0, 0)일 수 있습니다. tnt_n 시간 이후에 QQ(vnx,vny)(v_{nx}, v_{ny})의 속도로 무한히 움직입니다. QQPP와 충돌하지 않음이 보장됩니다.

출력

문제의 정답을 출력합니다. 출력값의 정답과의 절대 또는 상대 오차가 10610^{-6} 이하이면 정답으로 인정됩니다. 정답은 유한한 값임이 보장됩니다.

문제 풀이

스포일러

일단 PP를 원점에 고정하고 QQ의 상대이동을 생각합니다. 이제 문제는 QQ의 이동을 나타내는 각 선분 또는 반직선 위에서 최대의 절대 각속도를 찾는 문제가 됩니다.

어떤 선분이 주어졌을 때, 이 선분을 회전하여 기울기가 0인 직선 상에서 양의 방향으로 운동하도록 하고 x=0x=0인 시점을 시간 t=0t=0으로 두어도 문제가 없습니다. 각속도는 dθdt\frac{d\theta}{dt}이므로, 이 상황에서 극좌표계로 식을 세우고 미분을 해 봅시다.

x=rcosθ=vty=rsinθ=y0 \begin{align*} x = r \cos \theta = vt \\ y = r \sin \theta = y_0 \end{align*} drcosθrsinθdθ=vdtdrsinθ+rcosθdθ=0 \begin{align*} dr \cos \theta - r \sin \theta d\theta &= vdt \\ dr \sin \theta + r \cos \theta d\theta &= 0 \end{align*}

이제 drdr 항을 지우면 다음의 식을 얻습니다.

rdθ=vsinθdtdθdt=vrsinθ \begin{align*} r d\theta &= -v \sin \theta dt \\ \frac{d\theta}{dt} &= -\frac{v}{r} \sin \theta \end{align*}

여기서 θ\theta의 값은 (0,π)(0, \pi) 내에서 움직이며, 자명하게 θ=π2\theta = \frac{\pi}{2} (t=0t = 0)에서 최대 절댓값을 갖고 멀어질수록 감소합니다.

원점에서 직선으로 수선을 내리면 직각삼각형을 얻을 수 있고, 수선의 길이는 y0y_0이므로 sinθ\sin \theta를 거리의 비율로 환산하여 다음의 식을 얻을 수 있습니다.

dθdt=vy0r2 \frac{d\theta}{dt} = -\frac{v y_0}{r^2}

이제 각 선분에 대해 그 직선 상의 점과의 최소 거리와 그 거리를 갖는 시간을 계산하여, 최소 거리 지점이 선분 위에 있으면 그 점에 대한 값을, 아니라면 두 끝점 중 최댓값을 계산하여 그러한 모든 값들 중 최댓값을 출력하면 됩니다.

Last updated on