基因序列相似性问题

时间限制:10s      空间限制:256MB

题目描述

给定2个长度分别为m和n的DNA序列X和Y,以及一个长度为p的模式子串P.带有子序列包含约束的最长公共子序列问题就是要找出x和Y的不包含P为其子串的最长公共子序列。
例如,如果给定的DNA序列x和Y分别为X=AATGCCTAGGC,Y=CGATCTGGAC,模式子序列P=TGGC,则子序列ATCTGGC是X和Y的一个无约束的最长公共子序列,而不包含P为其子串的最长公共子序列是ATCTGC(可能不唯一)。
编程任务:找出给定序列X和Y带有不包含子串P约束的最长公共子序列。


输入格式

第1行中给出正整数m,n,p,分别表示给定序列X和Y以及模式子序列P的长度。m<200,n<200,p<200。接下来的3行分别给出序列X和Y以及模式子串P。

注意:此题输入数据,全是一些小写英文字母。


输出格式

将计算出的X和Y带有包含子序列P约束的最长公共子串的长度输出,不存在则长度为0。


样例输入

input 1
11 10 4
AATGCCTAGGC
CGATCTGGAC
TGGC


input 2
100 100 50
bbbbaabbaabaaababaaabbbbaaaaaabbbbabbbbaaaaaabaabaaaabbbabaaabbbaaaababbaaababababbaaaababbbaaaaaaab
baabaabbabbaaabaabbababbabaababbbababbbaaabbbbabaaabaabbabababaaaaaaaabbaaaaabbbbbbababbbbabbbaaaaba
bbabbbaababaaaabaaaaabbaaababbbbbabbabbabababaaaab

样例输出

output 1
6

output 2
78


提示

对于100%的数据:0<n,m,p<=200;


题目来源

Dp Kmp