#ddcc2019finala. [ddcc2019_final_a]レース (Race)

[ddcc2019_final_a]レース (Race)

问题描述

高桥君建造了一个企鹅赛道。

赛道由 NN 个正方形格子组成,形状排列在一行中从西到东。
这些格子的状态用字符串 SS 表示,第 ii 个格子的状态由字符串 SS 的第 ii 个字符表示,如果是 - 表示为“雪”,如果是 > 表示为“冰”。
此外,起点位于西端格子的西侧,终点位于东端格子的东侧。

高桥君的企鹅将从起点出发朝东前进,目标是到达终点。
企鹅每经过一个雪格子需要 11 秒,每经过一个冰格子需要 1/(k+2)1/(k+2) 秒的时间,其中 kk 是该冰格子之前连续存在的冰格子的数量。
例如,如果雪格子的下一个格子有 22 个冰格子,则第一个冰格子需要 1/21/2 秒通过,第二个冰格子需要 1/31/3 秒通过。

在企鹅出发前,高桥君可以将一个雪格子改变成冰格子。
在企鹅从起点出发到达终点所需的最短时间是多少秒?

约束条件

  • 3N100,0003 \leq N \leq 100,000
  • SS 是由 -> 组成的长度为 NN 的字符串
  • S1=S2=SN1=SN=S_1 = S_2 = S_{N-1} = S_N = -
  • SS 中,- 必然与另一个 - 相邻出现

输入

输入以以下格式从标准输入中给出。

NN SS

输出

输出企鹅到达终点所需的最短时间。
如果与判题者的输出的相对误差或绝对误差不超过 10810^{-8},则视为正确。

输入示例 1

5
-->--

输出示例 1

3.83333333333333

如果将第 44 个格子从雪格子改为冰格子,赛道变为 -->>-
此时,企鹅分别需要 1,1,1/2,1/3,11, 1, 1/2, 1/3, 1 秒通过第 1,2,3,4,51, 2, 3, 4, 5 个格子,总共需要 23/6=3.83333333...23/6 = 3.83333333... 秒,这是最短时间。

输入示例 2

7
-------

输出示例 2

6.5

无论将哪个格子从雪格子改为冰格子,企鹅都会在 13/2=6.513/2 = 6.5 秒内到达终点。

输入示例 3

10
-->>>-->--

输出示例 3

6.78333333333333

如果将第 22 或第 66 个格子从雪格子改为冰格子,企鹅可以在 407/60=6.783333333...407/60 = 6.783333333... 秒内到达终点。