Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>#define N 100010int ct=1;int nm=1;char s[N][60];struct node{int num;int next[70];};node e[30*N];struct tree{int to,next;int index;}rt[N],qt[N*2];int rh[N],qh[N];int getnum(char *t){int s=0,i;for(i=0;t[i];i++){int x=t[i]-'A';if(e[s].next[x]){s=e[s].next[x];}else{e[s].next[x]=ct++;s=e[s].next[x];}}if(e[s].num==0) e[s].num=nm++;return e[s].num;}int p[N];