Ямы

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

요약
속도 1로 출발해 매 킬로미터마다 속도를 1씩 바꿀 수 있는 차가 각 구간의 제한 속도를 지키면서 최소 시간으로 n킬로미터를 달리는 방법을 구한다.
난이도

보통10점 중 6점

유형
그리디, 구현, 수학
정답자
아직 제출이 없습니다

문제

У Винни-Пуха большая радость --- он купил автомобиль. И теперь, чтобы опробовать покупку, он собрался съездить на нем за медом.

От дома Винни-Пуха до дерева с правильными пчелами, дающими правильный мед, ведет дорога длиной nn километров. Казалось бы, скорость передвижения на автомобиле там, где живет Винни, не регламентирована, и ехать можно сколь угодно быстро. Однако, если бы все было так просто, Винни бы не стал обращаться к Вам.

В некоторых местах на дороге расположены ямы. И, если Винни-Пух хочет сохранить свое новое авто в целости и сохранности (а он, конечно же, хочет), проезжать километр номер ii, на котором расположена яма, нужно со скоростью, не превышающей a_ia\_i километров в час. Конструкция автомобиля такова, что после каждого проеханного километра он может мгновенно ускориться на один километр в час, замедлиться на эту же скорость или оставить скорость своего движения без изменений. При этом после изменения он будет ровно километр ехать с новой скоростью, после чего снова сможет ее изменить.

Еще одна особенность автомобиля заключается в следующем: он не может мгновенно разогнаться до нужной скорости, зато может мгновенно остановиться (выбросив тормозной парашют). Соответственно, первый километр пути он всегда проедет со скоростью 11 километр в час, а скорость на последнем километре может быть ограничена только наличием на этом километре ям.

Винни любит быструю езду, а еще больше он любит мед. Соответственно, добраться от своего дома до дерева он хочет как можно быстрее. Вас же он попросил определить, за сколько он сможет добраться до дерева и при этом сохранить целым автомобиль.

입력

В первой строке входного файла дано одно целое число nn (1≤n≤1051 \le n \le 10^5) --- длина дороги. В следующей строке дано nn чисел a_ia\_i (0≤a_i≤1050 \le a\_i \le 10^5) --- описание дороги. Если a_ia\_i равно 00, это означает, что соответствующий километр дороги ровный и его можно проезжать с любой скоростью. Иначе километр содержит яму и его можно проехать со скоростью, не превышающей a_ia\_i километров в час.

출력

Выведите в выходной файл одно вещественное число --- минимальное количество часов, за которое Винни-Пух доедет до дерева. Ответ должен отличаться от правильного не больше, чем на 10−610^{-6}.

예제2

  1. 예제 1

    입력
    7
    0 0 2 0 0 0 1
    
    예상 출력
    4.16666666
    
  2. 예제 2

    입력
    8
    0 0 0 0 0 0 2 0
    
    예상 출력
    3.5