小球和新型材料
时间限制:C/C++/Rust/Pascal 3秒,其他语言6秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

小球是一位化学家,他正在研究一种新型材料。
新型材料由两种物质构成,每种物质都可以用一个长度为n的由小写字母组成的字符串来表示。
小球用字符串A来表示第一种物质,用字符串B来表示第二种物质。
小球可以通过一次化学变化,使第二种物质发生变化,使字符串B循环向前移动一个单位。假设B为“abcde”,那么小球可以通过一次化学反应,使B变为"bcdea"。每次化学反应的花费为C。
小球发现,如果字符串A的非空回文子串的个数与字符串B的非空回文子串的个数的差值的绝对值大于K时,这种新型材料将会对人体有害。
小球又发现,这种新型材料将给他带来的收益为:

其中P是一个给定的常数;
W:x ➡ y是一个定义域为全体小写字母的映射,通过列表法给出。通俗来讲,就是每一个字母对应了一个权值。
两个回文子串被认为是不同的,当且仅当它们在原字符串中出现的位置不同。例如“abab”一共有6个回文子串(分别为"a","b","a","b","aba","bab")。
小球想要知道,在新型材料对人体无害的情况下,收益减去花费的最大值为多少。请你帮小球求出这个最大值。
如果无论如何也不能使新型材料对人体无害,请输出0。
当然,小球不会让自己亏钱,如果在对人体无害的情况下必定亏钱,也请输出0。
对于100%的数据,1 100,000,0 C 100,1 K 109,1 P 5,0 W(x)≤ 3。

输入描述:

第一行包含4个正整数n,C,K,P;
第二行包含26个非负整数,表示W('a')~W('z');
第三行包含一个字符串,表示A;
第四行包含一个字符串,表示B。

输出描述:

一行一个整数,表示研究新型材料带来的收益减去花费的最大值。
示例1

输入

复制
3 3 4 2
2 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
abb
cbb

输出

复制
25

说明

初始时收益最大,为[W('a')+W('c')]2=(2+3)2=25 。
示例2

输入

复制
8 10 4 5
3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
aabccbaa
aaccccca

输出

复制
8961

说明

B初始时的收益最大但有害,通过3次化学反应后B变为ccccaaac,此时无害且收益最大。