Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#include <algorithm>using namespace std;struct node {int next[27];int num=0;};const int MAXN = 1555555;node pool[MAXN];int cnt=0;void insert(char * s) {int i=0;int dp = 0;while(*(s+i)) {int index = *(s+i)-'a';if(pool[dp].next[index]==0) {pool[dp].next[index] = ++cnt;pool[ pool[dp].next[index] ].num = 0;}dp = pool[dp].next[index];pool[dp].num++;++i;}}int query( char * s) {int dp = 0;int i=0;while(*(s+i)){int index = *(s+i)-'a';if(pool[dp].next[index]==0) {