有一个都市传说:如果你访问 Google 主页并搜索 "Google",宇宙就会坍缩。我们要分享一个秘密……这是真的!请不要尝试,也不要告诉任何人。好吧,也许不是真的。我们只是在开玩笑。
在遥远的宇宙中,情况并非如此。在那个宇宙里,如果你在任何搜索引擎上搜索该搜索引擎的名字,宇宙确实会坍缩!
为了应对这种情况,人们想出了一个有趣的解决方案。所有的查询都被汇集在一起,发送给一个中央系统,由该系统决定将哪个查询发送给哪个搜索引擎。中央系统可以将一系列查询发送给一个搜索引擎,并可以随时切换到另一个搜索引擎。查询必须按照接收到的顺序进行处理。中央系统绝不能将查询发送给名称与查询相同的搜索引擎。为了降低成本,切换次数应尽可能少。
你的任务是告诉我们,假设我们以最优方式进行编程,中央系统需要切换多少次搜索引擎。
输入格式
输入文件的第一行包含测试用例的数量 $N$。接下来是 $N$ 个测试用例。
每个测试用例以搜索引擎的数量 $S$ 开始。接下来的 $S$ 行每行包含一个搜索引擎的名称。每个搜索引擎名称的长度不超过一百个字符,且仅包含大写字母、小写字母、空格和数字。不会有两个搜索引擎名称相同。
接下来的一行包含查询的数量 $Q$。接下来的 $Q$ 行每行包含一个查询。每个查询都是该测试用例中某个搜索引擎的名称。
输出格式
对于每个测试用例,你应该输出:
Case #$X$: $Y$
其中 $X$ 是测试用例的编号,$Y$ 是搜索引擎的切换次数。
不要将最初选择搜索引擎计为一次切换。
数据范围
$0 < N < 20$
小数据集(测试集 1 - 可见;5 分)
$2 < S < 10$
$0 < Q < 100$
大数据集(测试集 2 - 隐藏;20 分)
$2 < S < 100$
$0 < Q < 1000$
样例
样例输入 1
2 5 Yeehaw NSM Dont Ask B9 Googol 10 Yeehaw Yeehaw Googol B9 Googol NSM B9 NSM Dont Ask Googol 5 Yeehaw NSM Dont Ask B9 Googol 7 Googol Dont Ask NSM NSM Yeehaw Yeehaw Googol
样例输出 1
Case #1: 1 Case #2: 0
说明
在第一个用例中,一种可能的解决方案是先使用 Dont Ask,在第 8 个查询之后切换到 NSM。
对于第二个用例,你可以使用 B9,无需进行任何切换。