题目描述
有三个字符串集合 pre,mid,suf。我们称一个字符串的二元组 (p,q) 合法,当且仅当:
- p 属于集合 pre;
- q 属于集合 suf;
- 存在 p 的一个长度不小于 k1 的子串 p′,q 的一个长度不小于 k2 的子串 q′,以及集合 mid 中的一个字符串 s,使得 p′+q′ 是 s 的一个子串。这里的
+ 代表字符串的连接。
你可以进行任意次操作,一次操作中,你需要选择一个合法的二元组 (p,q),并从集合 pre 中删去字符串 p,从集合 suf 中删去字符串 q。求最多的操作次数。
输入格式
输入的第一行包含三个正整数 s1,s2,s3,分别代表集合 pre,mid,suf 中字符串的个数。
第二行包含两个正整数 k1 和 k2,含义如问题描述中所述。
接下来 s1 行,每行包含一个字符串,代表集合 pre 中的一个字符串。
接下来 s2 行,每行包含一个字符串,代表集合 mid 中的一个字符串。
接下来 s3 行,每行包含一个字符串,代表集合 suf 中的一个字符串。
输出格式
输出一行,包含一个正整数,表示最多可以操作的次数。
2 1 4
2 3
aab
bbb
aabbcdd
cdd
bcd
zz
bcde
2
样例解释
样例中合法的二元组有 (aab, bcd) ,(aab, bcde) 和 (bbb, ccd)。
字符串 zz 的长度小于 k2,因此不存在包含这个字符串的合法二元组。
数据规模与约定
令 len(S) 为集合 S 中所有字符串的长度和,K 为 max{s1,s2,s3}。
再令 L=max{len(pre),len(mid),len(suf)} 。
对于 10% 的数据,K≤5 ,L≤30。
对于 20% 的数据,K≤30,L≤300。
对于 50% 的数据,K≤500,L≤104。
对于 100% 的数据,K≤2.5×104,L≤5×104,0≤k1,k2≤L。字符串只含有小写英文字母。
注意题目中的“集合”和数学中定义的集合不同,其中可以有相同的字符串。
尚无数据,请不要提交!求此题数据!