题号:NC20149
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld
题目描述
字符串A有N个子串B1,B2,…,Bn。如果将这n个子串分别放在恰好一个它在A中出现的位置上(子串之间可以重叠) 这样A中的若干字符就被这N个子串覆盖了。
问A中能被覆盖字符个数的最小值和最大值。
输入描述:
第一行包含一个正整数T,表示数据组数。保证T ≤ 10。
接下来依次描述T组数据,每组数据中:
第一行包含一个由小写字母组成的字符串,表示母串A。
第二行包含一个整数N,表示子串的个数。
接下来N行,每行包含一个由小写字母组成的字符串,描述子串。
数据保证所有子串均在母串中出现。字符串长度A ≤ 10000,N ≤ 4,子串长充 ≤ 1000
输出描述:
输出为T行,对应每组数据的答案。每行包含两个整数Minans和Maxans,分别表示对应数据中能被覆盖字符数量的最小值和最大值。
示例1
输入
复制
2
hello
4
he
l
l
o
abacaba
4
ab
ba
a
c