AC自动机模板题。
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
const int maxn=1000005;
const int maxm=500005;
int T,n;
char s[maxn];
struct Aho {
struct state {
int next[26],cnt,fail;
} stateTable[maxm];
int size;
void init() {
memset(stateTable,0,sizeof stateTable);
size=0;
}
void insert(char *S) {
int n=strlen(S),now=0;
for (int i=0;i<n;++i) {
int id=S[i]-'a';
if (!stateTable[now].next[id])
stateTable[now].next[id]=++size;
now=stateTable[now].next[id];
}
++stateTable[now].cnt;
}
void build() {
queue<int> que;
stateTable[0].fail=-1;
for (int i=0;i<26;++i)
if (stateTable[0].next[i]) {
que.