你的 Git 项目(你不需要熟悉 git 也能解决这个问题)中有一些文件应该在同步时被忽略。你需要计算所需的 gitignore 最少行数。
形式上,你的项目是一个文件夹。文件夹可以包含文件和子文件夹。不存在空文件夹(即内部没有任何文件或子文件夹的文件夹)。最初,git 软件会同步项目中的所有文件。但是,你可以在设置(称为 gitignore)中指定一些文件和文件夹,以将它们排除在同步之外。对于 gitignore 中的每一行,你可以指定一个文件或一个文件夹中的所有文件。你不能忽略整个项目文件夹(即 gitignore 中不能有空行)。
给定项目中所有文件的路径,以及它们是否应该被忽略。你的任务是计算 gitignore 所需的最少行数。
输入格式
输入包含多个测试用例。第一行包含一个正整数 $T$,表示测试用例的数量。对于每个测试用例,首先给出两个非负整数 $n$ 和 $m$。然后是 $n$ 行非空的文件路径(应被忽略),以及 $m$ 行非空的文件路径(不应被忽略)。
路径是仅包含小写英文字母和斜杠('/')的字符串。斜杠用于分隔文件夹、子文件夹和文件名。例如,“a/b/c/d” 表示项目文件夹中的文件夹 “a”,文件夹 “a” 中的文件夹 “b”,文件夹 “b” 中的文件夹 “c”,以及文件夹 “c” 中的文件 “d”。所有路径都是有效的,具体来说:
- 路径非空,且始终指向一个文件(即路径不以斜杠结尾)。
- 路径不以斜杠开头。
- 文件夹名称和文件名非空(即没有连续的斜杠)。
- 文件路径始终唯一(即一个测试用例中的所有路径都不同)。
- 在同一个文件夹中,子文件夹和文件不会重名。例如,在一个测试用例中不会同时出现文件 “a/b/a” 和 “a/b/a/d”。但是,允许存在文件 “a/b/a” 和 “a/b/b”。
满足 $1 \le n + m \le 100$,且整个输入中文件路径的总字符数不超过 $1,000$(即整个输入文件中所有文件路径字符串的长度之和不超过 $1,000$)。
输出格式
输出 $T$ 行非负整数,表示每个测试用例中 gitignore 所需的最少行数。
样例
输入 1
2 3 0 data/train data/test model 3 1 data/train data/test model data/sample
输出 1
2 3
说明
在第一个样例测试用例中,对应的 gitignore 文件包含 2 行:一行文件夹路径 “data/” 和一行文件名 “model”。
在第二个样例测试用例中,对应的 gitignore 文件包含 3 行:文件路径 “data/train”、“data/test” 和 “model”。