#include #include #include #include #define N 64 struct trie{ int next[N]; int tag; }data[3000000]; int inp; int init(int a){ memset(data[a].next,0,sizeof(data[a].next)); data[a].tag=0; return a; } int tran(char a){ if(a>='A'&&a<='Z') return a-'A'; if(a>='a'&&a<='z') return a-'a'+26; return a-'0'+52; } void insert(char *a){ int p=0; for(;*a;a++){ int d=tran(*a); if(data[p].next[d]==0)data[p].next[d]=init(++inp); p=data[p].next[d]; data[p].tag++; } } int query(char *a){ int p=data[0].next[tran(*a)]; for(a++;*a&&p;a++){ int d=tran(*a); p=data[p].next[d]; } return data[p].tag; } bool isok(double x,double y){ return (fabs(x-y)/x)<0.11; } int getint(char *a){ int ret=0; for(int i=0;i<8;i++) ret=ret*2+a[i]; return ret; } char be[]="begin"; char en[]="end"; bool cmp(char *a,char *b,int len){ for(int i=0;i