返回小组 开始 2019-11-03 08:30:00

201910月赛(提高组)

结束 2019-11-07 21:30:00
Contest is over.
当前 2024-09-20 00:10:16

D. 一串简单的字符

描述

给定一个长度为M的字符串(字符串由'a'~'z'组成),可以在任意位置删除或者插入一些字符使得原字符串变成回文串。例如'abcb'可以在最后添加一个'a'变成'abcba'回文串,或者删除最开始的'a'变成'bcb'回文串,又或者在最开头添加'bcb'变成'bcbabcb'回文串。

需要注意的是,不论是删除或者添加相关的字母都需要付出相应的代价t。请你找出把原来的字符串变成回文串的最小的费用。

PS. 空字符串也是一个回文串。

输入

输入数据由若干行;

第一行为两个用空格分开的整数N、M分别代表给定的字符串中所包含的字母的种数和字符串的长度;

第二行为一个长度为M的字符串;

第三行到第N+2行,每行有一个用空格分隔的三元组,包含一个字符和两个整数,分别代表添加和删除这个字符的代价。

输出

输出数据为一行一个整数,代表将给定的字符串变成回文串的最小代价。

样例

输入

3 4
abcb
a 1000 1100
b 350 700
c 200 800

输出

900

提示

数据规模:

对于100%的数据:

1\leq N\leq 26

1\leq M\leq 2,000

1\leq t\leq 10,000


Submit

登录

注册
时间限制 1 秒
内存限制 256 MB
提交