蒟蒻求问,问什么有的时候直接使用 getchar,会导致 TLE,而加上如下代码则不会呢?
const int SIZE(1<<21);
namespace Fread{char buf[SIZE],*S,*T;inline char getchar(){if(S==T){T=(S=buf)+fread(buf,1,SIZE,stdin);if(S==T){return '\n';}}return *S++;}}
namespace Fwrite{char buf[SIZE],*S=buf,*T=buf+SIZE;inline void flush(){fwrite(buf,1,S-buf,stdout);S=buf;}inline void putchar(char c){*S++=c;if(S==T){flush();}}struct NTR{~NTR(){flush();}}ztr;}
#define getchar Fread::getchar
#define putchar Fwrite::putchar