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

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

라인랜드의 공항

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

요약
구간별 선형 지형에서 길이 L의 평평한 활주로를 놓을 위치를 찾아 깎아야 할 면적을 최소화하는 문제입니다.
난이도

보통10점 중 6점

유형
기하, 이분 탐색, 누적 합
정답자
아직 제출이 없습니다

문제

라인랜드는 특이한 나라입니다. 이름 그대로, 위에서 내려다본 이 나라의 모양은 어떤 2차원 도형이 아니라 하나의 직선입니다. 이 직선을 따라 이어지는 지형은 매우 험준한 산악 지대여서 이따금 문제를 일으킵니다. 지금 그런 문제가 하나 생겼습니다. 이 현대에 왕은 나라의 경제를 살리기 위해 공항을 짓고자 합니다. 그런데 비행기는 경사진 활주로에 착륙할 수 없으므로, 평평한 땅이 필요합니다. 더 큰 비행기까지 수용하려면 이 활주로의 길이는 최소한 LL 이상이어야 합니다.

오랜 세월에 걸쳐 라인랜드 주민들은 땅을 평평하게 다듬는 데 매우 능숙해졌습니다. 어떤 땅이 주어지면 그들은 바위를 빠르게 깎아낼 수 있습니다. 다만 착륙 지대가 불안정해질 수 있으므로 바위를 새로 쌓아 올리지는 않으려 합니다. 즉 지형을 깎아 내릴 수만 있고 높일 수는 없습니다. 노력을 최소화하기 위해, 그들은 목표(길이 LL의 평평한 땅)를 이루는 데 필요한 최소한의 바위만 깎아내려 합니다. 그 최소량은 얼마일까요? 라인랜드가 저차원이라는 특성 때문에, 깎아내야 하는 바위의 양은 부피가 아니라 넓이로 측정합니다. 즉 활주로가 놓이는 위치 위쪽에 있는 지형의 총넓이(단면에서 활주로보다 위에 있는 색칠된 부분)가 곧 깎아내야 하는 양입니다.

입력

첫 줄에 시나리오의 개수를 나타내는 양의 정수(최대 2525)가 주어집니다. 그다음 각 시나리오마다 다음이 주어집니다.

  • 한 줄에 정수 NN과 LL이 주어집니다. NN은 지형을 정의하는 점의 개수로 2≤N≤5002 \le N \le 500이고, LL은 평평하게 만들어야 하는 필요 길이로 1≤L≤100001 \le L \le 10000입니다.
  • 이어서 NN개의 줄에 각각 두 정수 xix_i와 yiy_i가 주어지며 0≤xi,yi≤100000 \le x_i, y_i \le 10000입니다. xix_i는 강한 오름차순(strictly ascending)으로 주어집니다. 위치 xix_i에서 지형의 높이는 yiy_i이고, 인접한 두 xix_i 사이에서 지형의 기울기는 일정합니다(즉 지형은 구간별 선형 함수입니다). 또한 xN−x1≥Lx_N - x_1 \ge L이 항상 성립합니다.

출력

각 시나리오마다 한 줄에, 공항을 만들기 위해 깎아내야 하는 바위의 최소량을 출력합니다. 이 값은 유일하게 결정됩니다. 소수점 아래 넷째 자리까지 반올림하여 출력하며(예: 0.9000), 모든 테스트 데이터는 이 반올림이 애매하지 않도록 선택되어 있습니다.

예제2

  1. 예제 1

    입력
    4
    3 5
    0 2
    4 2
    14 0
    4 3
    0 2
    2 0
    4 0
    5 3
    3 10
    10 2
    30 2
    35 7
    2 777
    222 333
    4444 5555
    
    예상 출력
    0.9000
    0.3750
    0.0000
    373362.4867
    
  2. 예제 2

    입력
    1
    2 5
    0 3
    10 3
    
    예상 출력
    0.0000