AT_abc303_d [ABC303D] Shift vs. CapsLock

题目描述

你的电脑键盘上有三种按键:a 键、Shift 键和 CapsLock 键。CapsLock 键上带有一个指示灯。最开始时,CapsLock 键的指示灯为关闭状态,电脑屏幕上显示的是空字符串。 你可以无限次地选择并执行以下三种操作中的一种,每次操作可以执行 $0$ 次或多次。 - 用 $X$ 毫秒按下 a 键。如果 CapsLock 指示灯为关闭,则在屏幕字符串末尾添加 `a`,如果为开启,则添加 `A`。 - 用 $Y$ 毫秒同时按下 Shift 键和 a 键。如果 CapsLock 指示灯为关闭,则在屏幕字符串末尾添加 `A`,如果为开启,则添加 `a`。 - 用 $Z$ 毫秒按下 CapsLock 键。如果 CapsLock 指示灯为关闭,则切换为开启;如果为开启,则切换为关闭。 给定一个只由 `A` 和 `a` 组成的字符串 $S$,请你求出将屏幕上的字符串变为 $S$ 所需的最短时间(单位为毫秒)。

输入格式

输入以以下格式从标准输入中给出。 > $X$ $Y$ $Z$ $S$

输出格式

请输出答案。

说明/提示

## 限制条件 - $1 \leq X, Y, Z \leq 10^9$ - $X, Y, Z$ 均为整数 - $1 \leq |S| \leq 3 \times 10^5$ - $S$ 仅由 `A` 和 `a` 组成 ## 样例解释 1 如下操作可以在 $9$ 毫秒内将屏幕字符串变为 `AAaA`,且这是所需的最短时间。 - 用 $Z(=3)$ 毫秒按下 CapsLock 键,指示灯变为开启。 - 用 $X(=1)$ 毫秒按下 a 键,屏幕字符串末尾添加 `A`。 - 用 $X(=1)$ 毫秒按下 a 键,屏幕字符串末尾添加 `A`。 - 用 $Y(=3)$ 毫秒同时按下 Shift 键和 a 键,屏幕字符串末尾添加 `a`。 - 用 $X(=1)$ 毫秒按下 a 键,屏幕字符串末尾添加 `A`。 由 ChatGPT 4.1 翻译