#pragma GCC optimize("Ofast") #pragma GCC target("avx2") char*mmap(); char wbuf[20<<20]; #define HASHSIZE (1<<20) char* hashtbl[HASHSIZE]; int hashmul; int hashf(char*s){ int h=0; char*p=s; while(*p>=64){ h=h*hashmul+*p; ++p; } int a=h>>20|1; h&=HASHSIZE-1; while(1){ if(!hashtbl[h]){ hashtbl[h]=s; return 1; } if(memcmp(hashtbl[h],s,p-s)==0 && hashtbl[h][p-s]<64){ return 0; } h=h+a&HASHSIZE-1; } } char*bs[200000]; main(){ hashmul=time(0)|1; char*rp=mmap(0l,1l<<28,1,2,0,0ll); while(*rp++!=10); int n=0; do{ hashf(rp); while(*rp++>=64); bs[n++]=rp; while(*rp++>=64); }while(*rp); char*wp=wbuf; for(int i=0;i=64); } } write(1,wbuf,wp-wbuf); _exit(0); }