AT_ddcc2019_final_a レース (Race)

Description

[problemUrl]: https://atcoder.jp/contests/ddcc2019-final/tasks/ddcc2019_final_a 高橋君はペンギンのレース場を作りました。 レース場は $ N $ 個の正方形のマスが西から東に一列に並んだ形状をしています。 これらのマスの状態は文字列 $ S $ により表され、西から $ i $ 番目のマスの状態は $ S $ の $ i $ 文字目が `-` なら「雪」、`>` なら「氷」です。 また、スタート地点は西端のマスの西の端、ゴール地点は東端のマスの東の端です。 高橋くんのペンギンが、スタート地点からゴール地点を目指して東に進みます。 ペンギンは、雪マスを $ 1 $ マス通過するのに $ 1 $ 秒、氷マスを $ 1 $ マス通過するのに $ 1/(k+2) $ 秒の時間を要します。 ここで、$ k $ はその氷マスの直前に連続して存在する氷マスの個数です。 例えば、雪マスの直後に氷マスが $ 2 $ つ存在する場合、$ 1 $ つ目の氷マスは $ 1/2 $ 秒、$ 2 $ つ目の氷マスは $ 1/3 $ 秒で通過します。 ペンギンがスタートする前に、高橋君は雪マスのうち $ 1 $ つを氷マスに変えることができます。 ペンギンがスタート地点を出発してからゴール地点に到達するまでに最小で何秒かかるでしょうか?

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ S $

Output Format

ペンギンがゴール地点に到達するのに要する秒数の最小値を出力せよ。 ジャッジの出力との相対誤差または絶対誤差が $ 10^{-8} $ 以下であれば正解となる。

Explanation/Hint

### 制約 - $ 3\ \leq\ N\ \leq\ 100\ 000 $ - $ S $ は `-`, `>` で構成される長さ $ N $ の文字列 - $ S_1\ =\ S_2\ =\ S_{N-1}\ =\ S_N\ = $ `-` - **$ S $ において、`-` は必ず別の `-` と隣接して現れる** ### Sample Explanation 1 西から $ 4 $ 番目のマスを雪マスから氷マスに変えると、レース場は `-->>-` となります。 このとき、ペンギンは西から $ 1,\ 2,\ 3,\ 4,\ 5 $ 番目のマスの通過にそれぞれ $ 1,\ 1,\ 1/2,\ 1/3,\ 1 $ 秒、合計で $ 23/6\ =\ 3.83333333... $ 秒を要し、これが最短です。 ### Sample Explanation 2 どのマスを雪マスから氷マスに変えても、ペンギンは $ 13/2\ =\ 6.5 $ 秒でゴールします。 ### Sample Explanation 3 西から $ 2 $ 番目または $ 6 $ 番目のマスを雪マスから氷マスに変えると、ペンギンは $ 407/60\ =\ 6.783333333... $ 秒でゴールすることができます。