#include #include #include #include #include #include #include #include char *input_buffer; int input_buffer_size; struct stat st; __attribute__((constructor)) void read_to_buffer(void) { fstat(0, &st); input_buffer_size = st.st_size + 64; input_buffer = mmap(0, input_buffer_size, PROT_READ, MAP_PRIVATE, 0, 0); } int main(void) { char a, b, c = *input_buffer++; while (1) { a = c; c = *input_buffer++; if (c == '\n') { break; } } while (1) { b = c; c = *input_buffer++; if (c < '!') { break; } } printf("%s\n", a == b ? "Even" : "Odd"); munmap(input_buffer, input_buffer_size); input_buffer_size = 0; return 0; }