A121001.小安的括号调整

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

小枫、小午和小安三个人在玩一个字符串游戏。

小枫在黑板上写了一个长度为 2N2N 的字符串 SS,只由 () 两种字符组成。

小午可以向小安提出两种修改操作,每次操作需要付出一定的代价:

  1. 交换操作:选择 1i<j2N1 \leq i < j \leq 2N,交换 SiS_iSjS_j,代价为 AA
  2. 替换操作:选择 1i2N1 \leq i \leq 2N,将 SiS_i 改为 (),代价为 BB

小安的目标是通过任意顺序、任意次数的操作,将 SS 变成一个合法的括号序列,并使得总代价最小

小午想知道这个最小代价是多少。你能帮小安算出来吗?

合法括号序列的定义:

空字符串是一个合法括号序列。如果 AA 是一个合法括号序列,那么 ( + AA + ) 也是一个合法括号序列。如果 SSTT 都是非空的合法括号序列,那么 S+TS + T 也是一个合法括号序列。可以证明,经过有限次操作后,一定可以将 SS 变成合法括号序列。

输入格式

第一行输入三个正整数 N,A,BN,A,B ,分别表示字符串长度的一半,一次交换操作的代价,一次替换操作的代价。

第二行输入一个长度为 2N2N 的字符串 SS ,仅由 () 组成。

输出格式

输出一行一个整数,表示将 SS 变为合法括号序列所需的最小总代价。

输入输出样例

  • 输入#1

    3 3 2
    )))(()

    输出#1

    5

说明/提示

数据范围

对于 100%100\% 的测试数据,满足:1N5×1051 \leq N \leq 5 \times 10^51A,B1091 \leq A, B \leq 10^9

首页