#CF150D. 不可能的任务

不可能的任务

不可能的任务

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

给定一个字符串以及分数数组 aka_k。你可以反复执行以下操作:选择当前字符串中的一个回文子串并删除,剩余字符自动拼接。

若删除的回文串长度为 kk,你获得 aka_k 分;若 ak=−1a_k=-1,则禁止删除长度为 kk 的回文串。你也可以随时停止。

求能够获得的最大总分。

输入格式

第一行包含字符串长度 ll。

第二行包含 ll 个整数 a1,a2,…,ala_1,a_2,\ldots,a_l。

第三行包含一个长度恰为 ll 的小写字母字符串。

输出格式

输出最大总得分。

样例输入 1

7
-1 -1 -1 -1 -1 -1 -1
abacaba

样例输出 1

0

样例输入 2

7
1 -1 -1 -1 -1 -1 -1
abacaba

样例输出 2

7

样例输入 3

7
1 5 -1 -1 -1 -1 10
abacaba

样例输出 3

16

数据范围

1≤l≤1501\le l\le150,−1≤ak≤105-1\le a_k\le10^5,字符串只含小写字母。

子任务编号 分值 特殊限制
1 30 l≤8l\le8
2 l≤18l\le18
3 40 无特殊限制

每个测试点独立计分。