아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

교통 체증

시간 제한2초메모리 제한256 MB

요약
직선 도로에서 앞차들의 초기 위치, 길이, 속도가 주어질 때, 앞차와 L미터 이내로 가까워지면 속도를 줄이는 규칙 아래 교수 차량이 좌표 S에 도달하는 시간을 구한다.
난이도

보통10점 중 6점

유형
시뮬레이션, 수학, 배열, 구현
정답자
아직 제출이 없습니다

문제

2050년, 도로 교통의 안전을 높이기 위해 모든 도로에서 추월이 금지되었다. 게다가 앞차와의 거리를 L미터보다 가깝게 좁히는 것도 금지되며, 모든 도로에 설치된 카메라가 규칙 준수를 감시한다. 아쉽게도 이 조치로 교통 체증이 완전히 해결되지는 않았다.

스빈킨 교수는 매일 아침 집에서 직장으로 출근한다. 그가 달리는 도로는 직선이며, 1미터를 단위로 하는 좌표계를 도입하고 자동차를 이 직선 위에서 좌표가 커지는 방향으로 움직이는 선분으로 나타내자.

처음에 교수님의 차는 도로의 시작 지점에 있어서 차의 앞부분이 원점에 있다. 교수님 차의 최대 속도는 초속 V미터이다.

교수님의 차 외에도 도로에는 n대의 차가 달리고 있다. 각 차는 주행 중에 자신의 최대 속도로 가려고 한다. 차 A가 앞서 가는 차 B를 따라잡아 A의 앞부분이 B의 뒷부분에서 정확히 L만큼 떨어지게 되면, A는 즉시 속도를 B의 속도로 줄이고 이후 B의 속도 변화를 모두 따라간다. 어떤 차도 도로를 벗어나지 않는다.

스빈킨 교수가 직장에 도착하는 시간을 구하라. 교수님 차의 앞부분이 좌표 S인 점에 도달하면 도착한 것으로 본다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 여러 줄로 구성된다.

첫째 줄에는 네 정수 n, L, S, V가 주어진다(1 ≤ n ≤ 10000, 1 ≤ L ≤ 1000, 1 ≤ S ≤ 10^9, 1 ≤ V ≤ 100). n은 교수님 앞에 있는 차의 수, L은 차 사이의 최소 거리(미터), S는 집에서 직장까지의 거리, V는 교수님 차의 최대 속도(초속 미터)이다.

다음 n개의 줄에는 각각 세 정수 x_i, l_i, v_i가 주어진다(1 ≤ x_i ≤ 10^9, 1 ≤ l_i ≤ 10, 1 ≤ v_i ≤ 100). x_i는 초기 시각에 i번째 차의 앞부분의 좌표, l_i는 그 차의 길이, v_i는 최대 속도(초속 미터)이다.

차들은 교수님 차에서 멀어지는 순서로 주어지며, 초기 시각에 이웃한 두 차 사이의 거리는 L미터 이상임이 보장된다.

테스트 케이스의 마지막 줄에는 네 개의 0이 주어진다. 모든 테스트 케이스에 등장하는 차의 총수는 10000을 넘지 않는다.

출력

각 테스트 케이스마다 교수님이 직장에 도착하는 시간을 초 단위로 한 줄에 출력한다. 답의 절대 오차 또는 상대 오차는 10^-5 이하여야 한다.

예제1

  1. 예제 1

    입력
    1 1 10 2
    3 1 1
    1 1 10 1
    3 2 1
    1 1 10 2
    3 1 2
    2 3 15 3
    4 1 2
    10 3 1
    1 3 500 93
    123 3 2
    0 0 0 0
    
    예상 출력
    9.0000000000
    10.0000000000
    5.0000000000
    15.0000000000
    191.5000000000