지하철

시간 제한1초메모리 제한128 MB

문제

지하철 열차는 승객을 역에서 역으로 최대한 빠르고, 안전하고, 편안하게 실어 나르기 위해 운행됩니다. 기관사 노조는 동의하지 않을 수도 있지만, 컴퓨터로 제어되는 열차는 이러한 목표를 사람이 운전하는 열차보다 더 효과적으로 달성합니다. 안전과 승차감에 대한 고려, 그리고 열차 자체의 물리적 한계로 인한 제약을 지키면서, 열차를 한 역에서 다른 역으로 이동시키는 최적의 제어 전략을 구하는 것이 목표입니다.

입력으로 주어지는 매개변수는 모두 1000 이하의 양의 정수입니다.

  • d: 두 역 사이의 거리 (미터)
  • m: 열차의 최대 허용 속도 (m/s)
  • a: 열차의 최대 가속도 절댓값 (m/s²)
  • j: 최대 저크(jerk, 가속도의 변화율) 절댓값 (m/s³)

열차는 각 역에서 완전히 정지해 있어야 하며, 한 방향으로만 이동하고 속도는 m을 넘을 수 없습니다. 가속도는 양수(전진 방향)일 수도 음수(후진 방향)일 수도 있지만 그 절댓값은 a를 넘을 수 없습니다. 마지막 매개변수인 저크는 어느 방향으로든 가속도가 변하는 비율로, 가속도는 이 값보다 빠르게 증가하거나 감소할 수 없습니다. 이 제약은 서 있는 승객이 넘어지는 것을 방지합니다.

입력

여러 개의 테스트 케이스가 주어집니다. 각 테스트 케이스는 한 줄에 d, m, a, j가 공백으로 구분되어 주어집니다. 입력은 파일의 끝까지 이어집니다.

출력

각 테스트 케이스마다, 두 역 사이를 이동하는 데 필요한 최소 시간(초)을 0.1초 단위로 반올림하여 한 줄에 출력합니다.