#ATarc175b. [ARC175B] Parenthesis Arrangement

[ARC175B] Parenthesis Arrangement

题目描述

给定一个由 2N2N() 组成的字符串 SS。用 SiS_i 表示 SS 从左起第 ii 个字符。

你可以按任意顺序、任意次数(包括 00 次)执行以下两种操作:

  • 选择满足 1i<j2N1\leq i < j \leq 2N 的整数对 (i,j)(i, j),交换 SiS_iSjS_j。该操作的代价为 AA
  • 选择满足 1i2N1\leq i \leq 2N 的整数 ii,将 SiS_i 替换为 ()。该操作的代价为 BB

你的目标是将 SS 变为一个合法的括号序列。请你求出达成目标所需的总代价的最小值。可以证明,经过有限次操作后一定可以达成目标。

合法括号序列的定义如下:

  • 空字符串;
  • 存在某个合法括号序列 AA,将 (AA) 按顺序连接得到的字符串;
  • 存在非空的合法括号序列 S,TS,T,将 S,TS,T 按顺序连接得到的字符串。

输入格式

输入以如下格式从标准输入读入:

NN AA BB SS

输出格式

请输出一行,表示所需总代价的最小值。

样例 1

输入

3 3 2
)))(()

输出

5

样例 2

输入

1 175 1000000000
()

输出

0

样例 3

输入

7 2622 26092458
))()((((()()((

输出

52187538

说明/提示

限制条件

  • 输入的所有数值均为整数。
  • 1N5×1051 \leq N \leq 5\times 10^5
  • 1A,B1091 \leq A, B \leq 10^9
  • SS 是长度为 2N2N 的、仅由 () 组成的字符串。

样例解释 1

操作的一种方案如下:

  • 交换 S3S_3S4S_4SS 变为 ))()(),代价为 33
  • S1S_1 替换为 (SS 变为 ()()(),这是一个合法的括号序列,代价为 22

本例中,将 SS 变为合法括号序列的总代价为 55。不存在总代价小于 55 的方案。

样例解释 2

输入的 SS 已经是合法括号序列,无需进行任何操作。

由 ChatGPT 4.1 翻译