만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Bar "Duck"

면접 대비

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

요약
길이 L인 탁자 위 쓰레기를 T초 안에 탁자 밖으로 날려 보내며 에너지 E를 넘지 않을 때, 만들 수 있는 가장 긴 빈 구간의 길이를 구합니다.
난이도

보통10점 중 5점

유형
투 포인터, 배열
정답자
아직 제출이 없습니다

문제

오늘 밤 집에서 파티가 열립니다. 친구 몇 명이 집에 오고, 저녁에는 좋아하는 보드게임인 'Bar "Duck"'을 할 예정입니다. 그런데 손님이 도착하기 몇 분 전, 게임에 쓸 수 있는 유일한 탁자가 출처를 알 수 없는 쓰레기로 덮여 있다는 것을 알게 되었습니다. 제대로 치울 시간이 없으니, 탁자의 일부라도 깨끗해지도록 쓰레기 조각 몇 개를 던져 치우려고 합니다.

탁자는 길지만 매우 좁아서, 표면을 길이가 LL 센티미터인 직선 선분으로 나타낼 수 있습니다. 좌표계는 한쪽 끝의 좌표가 0이고 다른 쪽 끝의 좌표가 LL이 되도록 잡습니다. 탁자 위에는 쓰레기 조각이 nn개 있으며, ii번째 조각은 좌표 xix_i에 놓여 있고 질량은 mim_i그램입니다.

쓰레기 조각 몇 개를 던질 수 있습니다. 즉, 축을 따라 두 방향 중 한 방향으로 초기 속력을 줄 수 있습니다. 조각은 던져진 뒤 가속이나 감속 없이 처음 받은 속력으로 움직이며, 탁자 양 끝 중 하나에 닿아 바닥으로 떨어질 때까지 계속 움직입니다. 조각들은 서로 독립적으로 움직이며, 충돌하거나 서로 방해하지 않는다고 가정합니다. 힘을 가하는 데는 에너지가 듭니다. 질량 mm그램인 물체를 초속 vv센티미터로 움직이려면 mv22\frac{mv^2}{2} 단위의 에너지를 써야 합니다.

게임은 지금부터 정확히 TT초 뒤에 시작됩니다. 게임에는 공간이 많이 필요하므로, 게임이 시작되는 순간 쓰레기가 전혀 없는 가장 긴 탁자 구간을 고릅니다. 하루 일을 마치고 피곤하므로 쓰레기 조각을 던지는 데 EE 단위를 넘게 쓰지 않으려 합니다. 각 조각의 속력은 서로 독립적으로 정할 수 있으며, 총 사용 에너지가 EE를 넘지 않는 한 어떤 조각에도 임의의 속력을 줄 수 있습니다.

TT초 뒤에 얻을 수 있는 가장 긴 깨끗한 탁자 구간의 길이를 구하세요. 이때 쓰는 에너지는 EE 단위를 넘지 않아야 합니다.

입력

첫 줄에는 공백으로 구분된 정수 nn, LL, TT, EE가 주어집니다 (1≤n≤1051 \leq n \leq 10^5, 1≤L,T,E≤1061 \leq L, T, E \leq 10^6).

다음 nn개 줄은 쓰레기 조각을 설명합니다. ii번째 줄에는 공백으로 구분된 정수 xix_i와 mim_i가 주어집니다 (0<xi<L0 < x_i < L, 1≤mi≤1031 \leq m_i \leq 10^3). 각각 ii번째 조각의 위치와 질량입니다. 두 조각이 같은 자리에 놓이는 경우는 없으며, 입력은 xix_i가 증가하는 순서로 정렬되어 있습니다.

출력

TT초 뒤, 에너지를 EE 단위 넘게 쓰지 않고 얻을 수 있는 가장 긴 깨끗한 구간의 길이를 센티미터 단위의 실수 하나로 출력하세요. 정답은 상대 오차 또는 절대 오차가 10−610^{-6} 이하이면 맞은 것으로 판정합니다.

힌트

첫 번째 테스트에서는 에너지를 모두 써서 유일한 조각에 초속 2\sqrt{2} 센티미터를 줍니다. 그러면 1초 뒤 가장 긴 깨끗한 구간의 길이는 2+22 + \sqrt{2} 센티미터가 됩니다.

두 번째 테스트에서는 두 조각을 초속 1 센티미터로 서로 반대 방향으로 움직이는 것이 최적입니다.

예제2

  1. 예제 1

    입력
    1 4 1 1
    2 1
    
    예상 출력
    3.4142135624
    
  2. 예제 2

    입력
    2 6 1 1
    2 1
    4 1
    
    예상 출력
    4.0000000000