inlinevoidInsert(){ int Now=0,len=strlen(str+1); for(REG int i=1;i<=len;++i){ if(!ch[str[i]-'a'][Now]){Now=ch[str[i]-'a'][Now]=++siz;continue;} Now=ch[str[i]-'a'][Now]; } }
voiddfs(int Now){ int tmp=0,flag=0; for(REG int i=0;i<=25;++i){ if(!ch[i][Now]) continue; dfs(ch[i][Now]),Win[Now]|=(Win[ch[i][Now]]^1),tmp|=(Lose[ch[i][Now]]^1),flag=1; } Lose[Now]=flag?tmp:1; }