#include #include #include #include #include char next_sign_char(); inline char next_sign_char() { char c; while (isspace(c = getchar())); return c; } int read_int(int* p) { int i = 0; bool pos = true; char c = next_sign_char(); if (c == '-' || c == '+') { pos = c == '+'; } else if (!isdigit(c)) { return 0; } else { i = c - '0'; } while ((c = getchar()) != EOF && c != '\n' && c != ' ') { if (!isdigit(c)) return 0; int digit = c - '0'; if ((pos && i > (MAX_INT - digit) / 10) || (!pos && i > (-1 * MIN_INT - digit) / 10)) { break; } i *= 10; i += c - '0'; } *p = pos ? i : -i; return 1; } int main() { int a; read_int(&a); printf("%d", a); }