Bar "Duck"
면접 대비시간 제한5초메모리 제한256 MB
길이 L인 탁자 위 쓰레기를 T초 안에 탁자 밖으로 날려 보내며 에너지 E를 넘지 않을 때, 만들 수 있는 가장 긴 빈 구간의 길이를 구합니다.
문제
오늘 밤 집에서 파티가 열립니다. 친구 몇 명이 집에 오고, 저녁에는 좋아하는 보드게임인 'Bar "Duck"'을 할 예정입니다. 그런데 손님이 도착하기 몇 분 전, 게임에 쓸 수 있는 유일한 탁자가 출처를 알 수 없는 쓰레기로 덮여 있다는 것을 알게 되었습니다. 제대로 치울 시간이 없으니, 탁자의 일부라도 깨끗해지도록 쓰레기 조각 몇 개를 던져 치우려고 합니다.
탁자는 길지만 매우 좁아서, 표면을 길이가 센티미터인 직선 선분으로 나타낼 수 있습니다. 좌표계는 한쪽 끝의 좌표가 0이고 다른 쪽 끝의 좌표가 이 되도록 잡습니다. 탁자 위에는 쓰레기 조각이 개 있으며, 번째 조각은 좌표 에 놓여 있고 질량은 그램입니다.
쓰레기 조각 몇 개를 던질 수 있습니다. 즉, 축을 따라 두 방향 중 한 방향으로 초기 속력을 줄 수 있습니다. 조각은 던져진 뒤 가속이나 감속 없이 처음 받은 속력으로 움직이며, 탁자 양 끝 중 하나에 닿아 바닥으로 떨어질 때까지 계속 움직입니다. 조각들은 서로 독립적으로 움직이며, 충돌하거나 서로 방해하지 않는다고 가정합니다. 힘을 가하는 데는 에너지가 듭니다. 질량 그램인 물체를 초속 센티미터로 움직이려면 단위의 에너지를 써야 합니다.
게임은 지금부터 정확히 초 뒤에 시작됩니다. 게임에는 공간이 많이 필요하므로, 게임이 시작되는 순간 쓰레기가 전혀 없는 가장 긴 탁자 구간을 고릅니다. 하루 일을 마치고 피곤하므로 쓰레기 조각을 던지는 데 단위를 넘게 쓰지 않으려 합니다. 각 조각의 속력은 서로 독립적으로 정할 수 있으며, 총 사용 에너지가 를 넘지 않는 한 어떤 조각에도 임의의 속력을 줄 수 있습니다.
초 뒤에 얻을 수 있는 가장 긴 깨끗한 탁자 구간의 길이를 구하세요. 이때 쓰는 에너지는 단위를 넘지 않아야 합니다.
입력
첫 줄에는 공백으로 구분된 정수 , , , 가 주어집니다 (, ).
다음 개 줄은 쓰레기 조각을 설명합니다. 번째 줄에는 공백으로 구분된 정수 와 가 주어집니다 (, ). 각각 번째 조각의 위치와 질량입니다. 두 조각이 같은 자리에 놓이는 경우는 없으며, 입력은 가 증가하는 순서로 정렬되어 있습니다.
출력
초 뒤, 에너지를 단위 넘게 쓰지 않고 얻을 수 있는 가장 긴 깨끗한 구간의 길이를 센티미터 단위의 실수 하나로 출력하세요. 정답은 상대 오차 또는 절대 오차가 이하이면 맞은 것으로 판정합니다.
힌트
첫 번째 테스트에서는 에너지를 모두 써서 유일한 조각에 초속 센티미터를 줍니다. 그러면 1초 뒤 가장 긴 깨끗한 구간의 길이는 센티미터가 됩니다.
두 번째 테스트에서는 두 조각을 초속 1 센티미터로 서로 반대 방향으로 움직이는 것이 최적입니다.