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

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

Bergsvandring

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

요약
산맥을 이루는 꺾은선이 주어질 때, 기울기 제한을 만족하고 지형을 뚫지 않는 다리만 놓아 첫 점에서 끝 점까지 이동하는 최소 다리 길이의 합을 구하거나 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그래프, 기하, 최단 경로
정답자
아직 제출이 없습니다

문제

En bergskedja består av nn punkter, (x_1x\_1, y_1y\_1) till (x_nx\_n, y_ny\_n), där x_1<x_2<...<x_nx\_1 < x\_2 < ... < x\_n. Mellan punkt ii och punkt i+1i+1 görs ett linjesegment.

Några vandrare vill ta sig över hela bergskedjan, dvs gå från punkt 11 till punkt nn. De kan dock inte gå på linjesegment om dess lutning är strikt större än dd. Här definierar vi lutningen av linjen genom (x_ix\_i, y_iy\_i) och (x_jx\_j, y_jy\_j) som

∣y_i−y_j∣∣x_i−x_j∣\frac{|y\_i - y\_j|}{|x\_i - x\_j|} där ∣x∣|x| betecknar absolutvärdet av xx.

För att göra vandringen möjlig kan de bygga broar i bergskedjan. En bro representeras också som ett linjesegment och byggs alltid mellan två punkter ii och jj. En bro får självklart inte ha större lutning än dd, och dessutom går det inte att bygga en bro som går igenom berget på något ställe.

Bestäm den minsta totala längden av de broar som behöver byggas för att vandringen ska vara möjlig.

입력

På först raden står heltalet nn och flyttalet 0<d≤1050 < d \le 10^5, separerade av mellanslag. De nn följande raderna innehåller två heltal 0<x_i,y_i≤1050 < x\_i, y\_i \le 10^5, koordinaterna för punkt ii, också separerade av mellanslag. Det är garanterat att x_i<x_i+1x\_i < x\_{i+1}.

출력

Skriv ut ett flyttal - minsta totala längden av broar som behövs för att göra vandringen möjlig. Om det är omöjligt att utföra vandringen oavsett hur man bygger broarna, skriv istället ut −1-1.

Ett svar på det här problemet kommer att räknas som korrekt om det absoluta felet är mindre än 10−310^{-3}. Det är garanterat att resultatet för ett testfall inte påverkas av en liten ändring av talet dd (detta för att undvika precisionsfel vid jämförelser av flyttal).

제한

  • 2≤n≤1,000 2 \le n \le 1\\,000

예제4

  1. 예제 1

    입력
    10 1.2
    0 0
    2 2
    3 0
    4 1
    5 0
    6 1
    7 0
    8 0
    9 2
    11 0
    
    예상 출력
    5.06449510224598
    
  2. 예제 2

    입력
    11 1.6
    0 0
    2 3
    4 3
    5 5
    6 1
    7 7
    8 3
    9 5
    12 2
    13 3
    15 1
    
    예상 출력
    9.231551362179038
    
  3. 예제 3

    입력
    3 1.9
    0 0
    10000 19999
    30000 0
    
    예상 출력
    -1
    
  4. 예제 4

    입력
    7 0.8
    0 0
    50000 20000
    120000 90000
    170000 70000
    180000 40000
    240000 40000
    310000 0
    
    예상 출력
    226157.73105863907