[TJOI2008] 公共子串

题目描述

一个字符串的子串是在这个串基础上去掉0个或者若干个字符所形成的,例如abc, aa和abbc都是字符串aabbcc的子串,而aba不是。 现给你三个字符串,请问他们三个共同含有多少种子串(不算空串)? 注意: 有些相同的公共子串尽管出现在不同的位置,但仍算1种,详见样例。

输入输出格式

输入格式


每组测试数据只有3行,每行都是一个只包含有小写字母的字符串。

输出格式


输出3个字符串共有的公共子串种类数。

输入输出样例

输入样例 #1

apartment
apache
approach

输出样例 #1

6

说明

3个字符串共有的公共子串有: “a”, “p”, “ap”, “pa”, “aa”, “apa”。 其中子串 “a” 有多个,但由于统计的是公共子串种类,所以 “a” 只算1种子串。 100%的数据中,字符串的长度不超过100。字符串中只含有小写字母。