/* cs-opt1-2.c - Don Yang (uguu.org) 05/05/04 */ #include int i, j, k, n; char *input = "\n /\\'\"*\r\t", *dfa = "OOO(O?G 99999999KKK(K;C AAAAAAAA 0\320((((((( P 09999\tI" "99AAAA\31AIA\320PI\20I9AI\320PM\0M=EM", *state; void o(int mask, int c) { if( k & mask ) putchar(c); } int main(void) { n = 0; for(state = dfa + 72; (i = getchar()) > -1; state = dfa + k) { for(j = 0; input[j] && (int)input[j] - i; j++); k = (int)*(state + (j & 7)); n |= k & 128; o(4, n ? 10 : 32); o(2, 47); o(1, i); n *= !!((k &= 120) - 72); } o(~0, 10); return 0; }