为什么读入优化会错呢

P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles

Windows_XP @ 2017-07-22 21:07:12

所以为什么读入优化会错呢

inline int read(){
    char ch=getchar(); while(ch==' '||ch=='\n') ch=getchar();
    int re=0; while(ch>='0'&&ch<='9'){re=re*10+ch-'0'; ch=getchar();}
    return re;
}

第一个点就错了。。输出27expect30 但是本地自测是30啊(就是样例)所以很神奇我就去掉了读入优化就a了。 所以为什么读入优化会错呢?是luogu什么函数不太支持吗?


by doby @ 2017-07-22 21:36:35

有负数


by wxl12 @ 2017-07-22 21:38:18

真的怀疑你的红名怎么来的

while(ch==' '||ch=='\n')不一定只有这两个字符,可能还有‘\r'之类的 写得标准点

inline int read() {
    int x=0, f=1;
    char c=getchar();
    while (c<'0' || c>'9') {
        if (c=='-')
            f=-1;
        c=getchar();
    }
    while (c>='0' && c<='9') {
        x=(x*10+c-'0')%mod;
        c=getchar();
    }
    return x*f;
}

|