#include #include #include typedef struct Trie { int v; Trie* next[2]; }; Trie* root; void creatTrie(char str[]) { Trie* p=root,*q; int i; for(i=0;inext[id]==NULL) { q=(Trie*)malloc(sizeof(Trie)); q->next[0]=q->next[1]=NULL; q->v=1; p->next[id]=q; } p=p->next[id]; } p->v=-1; } int findTrie(char str[]) { Trie* p=root; for(int i=0;inext[id]->v==-1) { return 1; } } p=p->next[id]; } return 0; } int main() { char s[10][20]; int c=1; while(scanf("%s",s[0])!=EOF) { root=(Trie*)malloc(sizeof(Trie)); root->next[0]=NULL; root->next[1]=NULL; root->v=1; creatTrie(s[0]); int k=1; while(scanf("%s",s[k])!=EOF&&s[k][0]!='9') { creatTrie(s[k++]); } int i; for( i=0;i=k) { printf("Set %d is immediately decodable\n",c++); } } return 0; }