자율주행 시스템 개발의 사전 단계로, 여러분의 팀은 두 자동차가 조치를 취하지 않으면 충돌할 가능성이 높을 때 중앙 교통 관제기가 경보를 울릴 수 있음을 증명하려고 합니다.
시험 주행로는 서로 다양한 각도로 교차하는 여러 개의 직선 트랙으로 이루어져 있습니다. 자동차가 트랙에 설치된 센서를 지날 때마다 그 위치와 속력이 기록되어 관제기로 전송되며, 관제기는 각 자동차에 대해 가장 최근의 두 관측값을 기억합니다.
이 과정에는 본질적인 불확실성이 있습니다. 센서 값은 정확하지 않고, 운전자가 이미 다른 차량의 존재를 알고 있는지도 알 수 없습니다. 그래서 관제기가 충돌이 불가피하다고 단정할 수 있는 경우는 거의 없으며, 설령 단정하더라도 운전자가 대응하기에는 이미 늦은 경우가 대부분일 것입니다.
따라서 우리는 두 자동차가 최근 관측된 대로 계속 움직인다고 가정할 때, 앞으로 30초 안의 어느 순간에라도 서로 위험할 만큼 가까이 지나가면 관제기가 경보를 울리기를 원합니다. 두 자동차가 서로 18 ft 이내로 지나가면 위험한 것으로, 최근접 거리가 20 ft 이상이면 안전한 것으로 봅니다. 최근접 거리가 18 ft 이상 20 ft 미만인 경우는 애매하여 위험 또는 안전 어느 쪽으로 처리해도 됩니다.
다음을 가정합니다.
초기 속력이 $s_0$이고 가속도가 $a$로 일정한 자동차의 시간 $t$ 후 속력은
$$s_t = a,t + s_0$$
이며, 같은 시간 동안 이동하는 거리는
$$d = \frac{a}{2},t^2 + s_0,t$$
입니다.
일정한 가속도 가정에 대한 두 예외는 다음과 같습니다.
입력은 하나 이상의 데이터 집합으로 이루어집니다.
각 데이터 집합은 한 줄에 하나씩, 4개의 관측값으로 구성됩니다. 앞의 두 관측값은 1번 자동차, 뒤의 두 관측값은 2번 자동차의 것입니다. 각 관측값은 네 개의 부동소수점 수 $t$, $x$, $y$, $s$입니다.
최근접 거리가 애매한 18~20 ft 범위에 드는 데이터 집합은 없습니다. 각 자동차의 두 관측값은 서로 다른 시각에 이루어지며, 더 이른 관측값이 먼저 주어집니다.
입력은 네 개의 음수로 이루어진 관측값으로 끝나며, 이 줄은 어떤 데이터 집합에도 포함되지 않습니다.
각 데이터 집합에 대해, 4개의 관측 시각 중 가장 큰 값으로부터 30초 이내에 위험할 만큼 가까운 통과가 예측되는지에 따라 Dangerous 또는 Safe를 한 줄에 출력합니다.