Fast Read and Write

Run Settings
LanguageC++
Language Version
Run Command
char buf[1 << 20], *p1, *p2; #define gc() (p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2) ? EOF : *p1++) // Don't use this with file IO! //#define getchar gc template <typename T> void read(T &x) { x = 0; char ch = getchar(); T f = 1; while (ch < 48 || ch > 57) { if (ch == 45) { f = -1; } ch = getchar(); } while (ch >= 48 && ch <= 57) { x = (x << 1) + (x << 3) + (ch ^ 48); // 此处因为每个字符对应的数字都小于 10 所以可以用异或 ch = getchar(); } x *= f; } template<typename T, typename ...Ts> void read(T &x, Ts &...args) { read(x); read(args...); } template<typename T> void write(T x) { if (x < 0) { putchar(45); x = -x; } static int sta[40]; int top = 0; do { sta[top++] = x % 10; x /= 10; } while (x); while (top) { putchar(sta[--top] | 48); // 此处因为每个数字都小于 10 所以可以用或 } } template<typename T, typename ...Ts> void write(T arg, Ts ...args) { write(arg); if (sizeof...(args)) { putchar(32); write(args...); } }
Editor Settings
Theme
Key bindings
Full width
Lines