[JLOI2016]字符串覆盖
题号: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

输出

复制
4 5
4 6