读入优化效果十分明显,当读入数据规模过大时使用能大大减少运行时间。
#include <cstdio>
inline int read() {
int num = 0, flag = 1;
char c = getchar();
while (c < '0' || c > '9') {
if (c == '-') flag = -1;
c = getchar();
}
while (c >= '0' && c <= '9')
num = num * 10 + c - '0', c = getchar();
return flag * num;
}
相比之下,输出优化并没有什么显著的效果,一般使用printf()即可。
#include <cstdio>
void write(int num) {
if (num < 0) putchar('-'), num = -num;
if (num > 9) write(num / 10);
putchar(num % 10 + '0');
}