发福利发福利。
读入速度很快,fread才是坠吼的!
这里给出了读入非负数(需要负数的话加个对'-'的判断),读入字符串。读入浮点数怎么办呢?读入字符串atof一下即可。
namespace IO{
char buf[1<<18], *fs, *ft;
inline char readc(){
return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<18,stdin)),fs==ft)?EOF:*fs++;
}
inline int readint(){
char c; int r;
while(c = readc()){if(c >= '0' && c <= '9'){r = c^0x30;break;}}
while(isdigit(c = readc()))r = (r<<3)+(r<<1)+(c^0x30);
return r;
}
inline int read_string(char *str){
int len = 1;char c;
while(!isalpha(c = readc()));str[0] = c;
while(isalpha(c = readc()))str[len++] = c;
str[len] = 0;
return len;
}
};using IO::read_string; using IO::readint;
快到了什么程度呢?请见syzoj/problems/16 排序
链接:http://115.28.164.3/blogs/109
(Orz sxysxy神犇)