P7937 [COCI 2007/2008 #5] BAZA

题目描述

定义两个字符串的公共前缀为这两个字符串从开头开始的公共子串。比如,字符串 `identity` 和字符串 `idealistic` 的公共前缀为 `ide`。 有一个数据库包含了 $N$ 个字符串。 在这个数据库中查询字符串 $W$ 使用的算法很原始,它将 $W$ 与数据库中的字符串一一比较。两个字符串的字符也一一比对,直到找到一个不匹配的字符或者其中一个字符串的结尾,然后进行最后一次比较确定两个字符串长度是否相等。当在数据库中找到 $W$ 时,算法结束。 分析这个算法,我们发现,在数据库中找到 $W$ 所用的步骤数等于与 $W$ 进行比较的字符串数量,加上 $W$ 与所有进行比较的字符串的公共前缀之和。 共有 $Q$ 个需查询的字符串。 写出一个程序,计算对于每一个字符串,程序需要多少步才能在数据库中找到这个词。 **请留意本题非同寻常的内存限制。**

输入格式

第一行,一个整数 $N$,表示数据库中字符串的个数。 接下来 $N$ 行,每行一个数据库中的字符串,这些字符串按照算法的查询顺序给出,互不相同。 接下来一行,一个整数 $Q$,表示需查询的字符串数。 接下来 $Q$ 行,每行一个需查询的字符串。

输出格式

对于每个查询字符串,输出一行,一个整数,表示程序在数据库中找到这个词所需的步数。

说明/提示

对于 $100\%$ 的数据,$1\le N,Q\le 3\times 10^4$,所有字符串长度 $