CF1091F New Year and the Mallard Expedition

题目描述

Bob 是一只鸭子。他想要到达 Alice 的巢穴,这样他们就能一起“鸭”了! ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1091F/6ea17347fb888fdf90ed3aa4a06fea6a2b533b11.png) 鸭子是终极动物!(图片由 See Bang 提供) 这段旅程可以表示为一条直线,由 $n$ 段组成。Bob 位于第一段的左侧,而 Alice 的巢穴在最后一段的右侧。每一段都有一定的长度(单位为米),并且有地形类型:草地、湖水或岩浆。 Bob 有三种移动方式:游泳、步行和飞行。他可以在任意时刻切换移动方式或改变方向(即使他处于非整数坐标时也可以),并且切换方式不需要额外时间。Bob 只能在水面上游泳,只能在草地上步行,而可以在任何地形上飞行。飞行每米需要 $1$ 秒,游泳每米需要 $3$ 秒,步行每米需要 $5$ 秒。 Bob 有有限的体力,称为耐力。游泳和步行对他来说很轻松,因此每走或游 1 米,他会获得 1 点耐力。另一方面,飞行非常耗体力,每飞行 1 米会消耗 1 点耐力。停留在原地不会影响他的耐力。当然,他的耐力永远不会变为负数。最初,他的耐力为零。 请问 Bob 到达 Alice 巢穴所需的最短时间是多少?

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示地形段数。 第二行包含 $n$ 个整数 $l_1, l_2, \dots, l_n$($1 \leq l_i \leq 10^{12}$),$l_i$ 表示第 $i$ 段地形的长度(单位为米)。 第三行包含一个长度为 $n$ 的字符串 $s$,由字符 "G"、"W"、"L" 组成,分别表示草地(Grass)、湖水(Water)和岩浆(Lava)。 保证第一段不是岩浆。

输出格式

输出一个整数 $t$,表示 Bob 到达 Alice 所需的最短时间。

说明/提示

在第一个样例中,Bob 先步行 $5$ 米,用时 $25$ 秒。然后他飞行剩下的 $5$ 米,用时 $5$ 秒。 在第二个样例中,Bob 先游泳 $10$ 米,用时 $30$ 秒。然后他飞越岩浆,用时 $10$ 秒。 在第三个样例中,水塘很小。Bob 先游过水塘,用时 $3$ 秒。但他还不能飞越岩浆,因为他只有 $1$ 点耐力,而需要 $2$ 点。因此他又游回半米,再游前进半米,总共用时 $3$ 秒。现在他有 $2$ 点耐力,可以用 $2$ 秒飞越岩浆。 在第四个样例中,他步行 $50$ 秒,飞行 $10$ 秒,游泳 $15$ 秒,最后飞行 $5$ 秒。 由 ChatGPT 4.1 翻译