问题 4543 --最佳操作

4543: 最佳操作★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 36  解决: 11
[提交][状态][命题人:]

题目描述

你会得到一个长度为n的宇符串s,它只包含01个字符。 

对字符串做如下操作:选择一段连续的由相同字符沟通的子串,将其从字符串中擦除,并以相同的顺序将其余的两个部分粘合在一起(这两部可以是空的)。例如,如果您从宇符串111110中擦除子字符串111,您将得到宇符串110。当你删除一个长度L的子串时,你会得到a*L+b 

你的任务是按照上述规则把字符串经过若干次操作,使得字符串为空,计算你总共能得到的最大分数。

输入

第一行包含一个整数(1<=t<=2000)——测试用例的数量。 

每个测试用例的第一行包含三个整数n,a b (1<=n<=100;-100<=a,b<=100)字符串s的长度和参数ab

第二行包含字符串s。字符串s仅由字符01组成。

输出

对于每个测试用例,打印一个整数--可以得分的最大分数

样例输入
Copy
3
3 2 0
000
5 -2 5
11001
6 1 -4
100111
样例输出
Copy
6
15
-2

提示

在第一个例子中,它可以删除整个字符串,将得到2*3+0=6分。

 在第二个例子中,如果逐个删除字符。然后,对于每个被删除的字符,我们将得到(-2)*1+5=3分,即总共15分

在第三个示例中,可以从字符串 100111 中删除子字符串 00,得到 1*2+-4=-2分,该宇符串将变为1111,全部删除它,将得到1*4+(-4)=0分。总的来说,两个操作中得到了-2 分。

来源

[提交][状态]