帮我看看快读代码有木有问题,谢谢
  • 板块灌水区
  • 楼主qianxinyu
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/13 12:32
  • 上次更新2023/11/2 14:10:15
查看原帖
帮我看看快读代码有木有问题,谢谢
715225
qianxinyu楼主2023/10/13 12:32

qxy是我的姓名首字母。

听说fread超快的。

#include"cstdio"
namespace qxy{
    const int S=1<<20;
    char Iqxy[S],*Ix=Iqxy,*Iy=Iqxy;
    char gc(){
        if(Ix==Iy)Ix=Iqxy,Iy=Iqxy+fread(Iqxy,1,S,stdin);
        return (Ix==Iy?EOF:*Ix++);
    }
    #define short int
    inline short read(){
        short x=0,f=1;char c=gc();
        while(c<'0'||c>'9')f=(c=='-'?-1:f),c=gc();
        while('0'<=c&&c<='9')x=x*10+c-'0',c=gc();
        return f*x;
    }
    inline void read(short &x){
        short f=1;x=0;char c=gc();
        while(c<'0'||c>'9')f=(c=='-'?-f:f),c=gc();
        while('0'<=c&&c<='9')x=x*10+c-'0',c=gc();
        x*=f;
    }
    #undef short
    inline void read(char a[])
    {
        char c=gc();int cnt=-1;
        while(c==' '||c=='\n')c=gc();
        while(c!=' '&&c!='\n'&&c!=EOF)a[++cnt]=c,c=gc();
        a[++cnt]='\0';
    }
    char Oqxy[S],*Ox=Oqxy,*Oy=Oqxy+S;
    void flush(){
        fwrite(Oqxy,1,Ox-Oqxy,stdout),Ox=Oqxy;
    }
    void pc(char c){
        *Ox++=c;
        if(Ox==Oy)flush();
    }
    #define short int
    inline void write(short x){
        if(x<0)pc('-'),x=-x;
        if(x<=9)pc(x+'0');
        else write(x/10),pc(x%10+'0');
    }
    #undef short
    inline void write(char a[])
    {
        int cnt=-1;
        while(a[++cnt]!='\0')pc(a[cnt]);
    }
}using namespace qxy;
char a[1000];
#define end() {flush();return 0;} 
int main()
{
    read(a);
    write(a);
    end();
}

提有用建议就送关注。

如果有人要这个代码的话可以把关注留下吗?

2023/10/13 12:32
加载中...