读写模板

自适应

template<typename T>void rd(T&x){int f=0,c;while(!isdigit(c=getchar()))f^=!(c^45);x=(c&15);while(isdigit(c=getchar()))x=x*10+(c&15);if(f)x=-x;}
template<typename T>void pt(T x,int c=-1){if(x<0)putchar('-'),x=-x;if(x>9)pt(x/10);putchar(x%10+48);if(c!=-1)putchar(c);}

极限快读

static char buf[100000], * pa = buf, * pb = buf;
#define gc pa==pb&&(pb=(pa=buf)+fread(buf,1,100000,stdin),pa==pb)?EOF:*pa++
inline long long int read(){
    long long int x(0); char c(gc);
    while (c < '0' || c>'9')c = gc;
    while (c >= '0' && c <= '9')x = (x << 1) + (x << 3) + (c ^ 48), c = gc;
    return x;
}

快读快写

感觉下面这个不是很快

namespace IO {
const int buffer_size = 1e5 + 5;
char buf[buffer_size], *S, *T;
bool flag_EOF;
inline char read_char() {
    if (S == T) T = (S = buf) + fread(buf, 1, buffer_size, stdin);
    return S != T ? *(S++) : EOF;
}
inline long long read_int() {
    int flag = 1;
    char c = read_char();
    while (c < '0' || c > '9') {
        if (c == EOF) {
            flag_EOF = true;
            return 0;
        }
        flag = (c == '-' ? -1 : 1);
        c = read_char();
    }
    long long x = 0;
    while (c >= '0' && c <= '9') {
        x = x * 10 + (c ^ 48);
        c = read_char();
    }
    return x * flag;
}
char st[13];
int _top;
inline void Write(int x) {
    if (!x) {
        putchar('0');
        return;
    }
    if (x < 0) {
        putchar('-');
        x = -x;
    }
    while (x) {
        st[++_top] = x % 10 + '0';
        x /= 10;
    }
    while (_top > 0) putchar(st[_top--]);
}
}  // namespace IO
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 13:47
机械打工仔:你自己匿名可以,这么好的公司就别给它匿名了
点赞 评论 收藏
分享
求offer的大角牛:不吃香菜
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务