#include<stdio.h>#include<string.h>#include<stdlib.h>typedef struct{ int next[2]; int end, alr;}Trie;Trie t[1 << 8];int tp;int insert(char *x, int site){ if(t[site].end) return 1; if(*x) { t[site].alr = 1; if(!t[site].next[*x - '0']) t[site].next[*x - '0'] = tp ++; insert(x + 1, t[site].next[*x - '0']); } else { t[site].end = 1; return t[site].alr; }}int main(){ int T, n, flag = 0; char s[15]; tp = 1; T = 0; while(scanf("%s", s)!= EOF) { if('9' == s[0]) { if(!flag) printf("Set %d is immediately decodablen", ++ T); else printf("Set %d is not immediately decodablen", ++ T); flag = 0; memset(t, 0, sizeof (Trie) * (tp + 1)); tp = 1; continue; } if(!flag && insert(s, 0)) flag = 1; } return 0;}