/* youmu3.c - Don Yang (uguu.org) 07/08/07 */ static char *data[] = { #define X10 "1234567890" #define X100 X10 X10 X10 X10 X10 X10 X10 X10 X10 X10 #define X1000 X100 X100 X100 X100 X100 X100 X100 X100 X100 X100 X1000 X1000 X1000 X1000 X1000 , "K#!C3!?7&!=7*!;7.!:70!972!874!874!874!75" "!874!874!874!972!:70!;7.!=7*!?7&!C3" , "F#!A-!?1!=5!<7!;7$!:7&!:7&!97(!97(!87*!8" "7*!87*!87*!87*!7+!87*!87*!87*!87*!87*!97" "(!97(!:7&!:7&!;7$!<7!=5!?1!A-" , "char *data[] = \"", "\",\"", "E B F C F D F E F F F G B" }, input[0x10000], output[0x10000], *t, *r, *w, x; int code, bit; #include int main() { w = input; #define XOR_KEY 0 x = XOR_KEY; for(r = data[5]; *r; r++) if( *r - 32 ) { for(t = data[*r - 66]; *t; t++) if( *t - 32 ) *w++ = *t ^ x; x ^= XOR_KEY; } t = data[2 //**/ 2 ]; r = input; w = output; for(; *t; t++) { if( (code = *t) > 93 ) { code = (code - 94) * 4 + 2; for(bit = 6; bit--; *w++ = ((code /= 2) & 1) ? (x ^= (*r - 34) ? 0 : 1) ? *r++ : *r++ : 32); } if( code > 55 ) for(code -= 55; code--; *w++ = 32); if( code > 34 ) for(code -= 34; code--; *w++ = *r++) x ^= (*r - 34) ? 0 : 1; if( code == 33 ) { if( x ) { *--w = 92; w++; r--; } *w++ = 10; } } *w = 0; return puts(output); }