int i=0;i ?98?????? printf(" %d",ans[i]); ?99???? puts(""); 100???? res++; 101?? } 102 } 103 void del(Trie *root) 104 { 105?? if(!root) return ; 106?? for(int i=0;i<127;i++) 107?? if(root->child[i]) 108????? del(root->child[i]); 109?? delete root; 110 } 111 int main() 112 { 113?? #ifdef LOCAL 114???? freopen("test.in","r",stdin); 115?? #endif 116?? int n,m,i; 117?? while(scanf("%d",&n)!=EOF) 118?? { 119??????? Trie *root=new Trie; 120????? for(i=0;i<127;i++) 121??????? root->child[i]=NULL; 122??????? root->fail=NULL; 123??????? root->id=0; 124????? for(i=1;i<=n;i++) 125????? { 126??????? scanf("%s",s1); 127?????? _insert(s1,root,i); 128????? } 129?????? ac_fail(root); 130?????? scanf("%d",&m); 131?????? res=0; 132????? for(int i=1;i<=m;i++) 133???? { 134?????? scanf("%s",t1); 135??????? memset(vis,0,sizeof(vis)); 136?????? solve(t1,root,i); 137???? } 138???? printf("total: %d\n",res); 139???? del(root); 140?? } 141??? return 0; 142 } ?
|