zcmimi's blog

使用fread加速

仅数字:

namespace IN{const int str=1<<20;static char in_buf[str],*in_s,*in_t;bool __=0;inline char gc(){return (in_s==in_t)&&(in_t=(in_s=in_buf)+fread(in_buf,1,str,stdin)),in_s==in_t?EOF:*in_s++;}template<typename T>inline void in(T &x){if(__)return;char c=gc();bool f=0;while(c!=EOF&&(c<'0'||c>'9'))f^=(c=='-'),c=gc();if(c==EOF){__=1;return;}x=0;while(c!=EOF&&'0'<=c&&c<='9')x=x*10+c-48,c=gc();if(c==EOF)__=1;if(f)x=-x;}template<typename T,typename ... arr>inline void in(T &x,arr & ... y){in(x),in(y...);}}using namespace IN;
namespace OUT{const char ln='\n';const int str=1<<20;static char out_buf[str],*out_s=out_buf,*out_t=out_buf+str;inline void flush(){fwrite(out_buf,1,out_s-out_buf,stdout);out_s=out_buf;}inline void pt(char c){(out_s==out_t)?(fwrite(out_s=out_buf,1,str,stdout),*out_s++=c):(*out_s++=c);}inline void out(char c){pt(c);}template<typename T>inline void out(T x){if(!x){pt('0');return;}if(x<0)pt('-'),x=-x;char a[50],t=0;while(x)a[t++]=x%10,x/= 10;while(t--)pt(a[t]+'0');}template<typename T,typename ... arr>inline void out(T x,arr & ... y){out(x),out(y...);}}using namespace OUT;

全部:

namespace IN{const int str=1<<20;static char in_buf[str],*in_s,*in_t;bool __=0;inline char gc(){return (in_s==in_t)&&(in_t=(in_s=in_buf)+fread(in_buf,1,str,stdin)),in_s==in_t?EOF:*in_s++;}inline void in(string &ch){ch.clear();if(__)return;char c;while((c=gc())!=EOF&&isspace(c));if(c==EOF){__=1;return;}ch+=c;while((c=gc())!=EOF&&!isspace(c))ch+=c;if(c==EOF)__=1;}inline void in(char &ch){if(__)return;char c;while((c=gc())!=EOF&&isspace(c));if(c==EOF)__=1;else ch=c;}inline void in(char *ch){*ch='\0';if(__)return;char c;while((c=gc())!=EOF&&isspace(c));if(c==EOF){__=1;return;}*ch=c;ch++;while((c=gc())!=EOF&&!isspace(c))*ch=c,ch++;if(c==EOF)__=1;*ch='\0';}template<typename T>inline void in(T &x){if(__)return;char c=gc();bool f=0;while(c!=EOF&&(c<'0'||c>'9'))f^=(c=='-'),c=gc();if(c==EOF){__=1;return;}x=0;while(c!=EOF&&'0'<=c&&c<='9')x=x*10+c-48,c=gc();if(c==EOF)__=1;if(f)x=-x;}template<typename T,typename ... arr>inline void in(T &x,arr & ... y){in(x),in(y...);}}using namespace IN;
namespace OUT{const char ln='\n';const int str=1<<20;static char out_buf[str],*out_s=out_buf,*out_t=out_buf+str;inline void flush(){fwrite(out_buf,1,out_s-out_buf,stdout);out_s=out_buf;}inline void pt(char c){(out_s==out_t)?(fwrite(out_s=out_buf,1,str,stdout),*out_s++=c):(*out_s++=c);}inline void out(const char* s){while(*s)pt(*s++);}inline void out(char* s){while(*s)pt(*s++);}inline void out(char c){pt(c);}inline void out(string s){for(int i=0;s[i];i++)pt(s[i]);}template<typename T>inline void out(T x){if(!x){pt('0');return;}if(x<0)pt('-'),x=-x;char a[50],t=0;while(x)a[t++]=x%10,x/=10;while(t--)pt(a[t]+'0');}template<typename T,typename ... arr>inline void out(T x,arr & ... y){out(x),out(y...);}}using namespace OUT;
#include<bits/stdc++.h>
using namespace std;
namespace IN{
    const int str=1<<20;
    static char in_buf[str],*in_s,*in_t;
    bool __=0;
    inline char gc(){return (in_s==in_t)&&(in_t=(in_s=in_buf)+fread(in_buf,1,str,stdin)),in_s==in_t?EOF:*in_s++;}
    inline void in(string &ch){
        ch.clear();
        if(__)return;
        char c;
        while((c=gc())!=EOF&&isspace(c));
        if(c==EOF){__=1;return;}
        ch+=c;
        while((c=gc())!=EOF&&!isspace(c))ch+=c;
        if(c==EOF)__=1;
    }
    inline void in(char &ch){
        if(__)return;
        char c;
        while((c=gc())!=EOF&&isspace(c));
        if(c==EOF)__=1;
        else ch=c;
    }
    inline void in(char *ch){
        *ch='\0';
        if(__)return;
        char c;
        while((c=gc())!=EOF&&isspace(c));
        if(c==EOF){__=1;return;}
        *ch=c;ch++;
        while((c=gc())!=EOF&&!isspace(c))*ch=c,ch++;
        if(c==EOF)__=1;
        *ch='\0';
    }
    template<typename T>
    inline void in(T &x){
        if(__)return;
        char c=gc();
        bool f=0;
        while(c!=EOF&&(c<'0'||c>'9'))f^=(c=='-'),c=gc();
        if(c==EOF){__=1;return;}
        x=0;
        while(c!=EOF&&'0'<=c&&c<='9')x=x*10+c-48,c=gc();
        if(c==EOF)__=1;
        if(f)x=-x;
    }
    template<typename T,typename ... arr>
    inline void in(T &x,arr & ... y){in(x),in(y...);}
}using namespace IN;
namespace OUT{
    const char ln='\n';
    const int str=1<<20;
    static char out_buf[str],*out_s=out_buf,*out_t=out_buf+str;
    inline void flush(){fwrite(out_buf,1,out_s-out_buf,stdout);out_s=out_buf;}
    inline void pt(char c){(out_s==out_t)?(fwrite(out_s=out_buf,1,str,stdout),*out_s++=c):(*out_s++=c);}
    inline void out(const char* s){while(*s)pt(*s++);}
    inline void out(char* s){while(*s)pt(*s++);}
    inline void out(char c){pt(c);}
    inline void out(string s){for(int i=0;s[i];i++)pt(s[i]);}
    template<typename T>
    inline void out(T x){
        if(!x){pt('0');return;}
        if(x<0)pt('-'),x=-x;
        char a[50],t=0;
        while(x)a[t++]=x%10,x/= 10;
        while(t--)pt(a[t]+'0');
    }
    template<typename T,typename ... arr>
    inline void out(T x,arr & ... y){out(x),out(y...);}
}using namespace OUT;
char ch[1000000];
int main(){
    int n;
    in(n);
    for(int i=1;i<=n;++i)in(ch),out(ch,ln);
    for(int i=1;i<=n;++i)in(ch),out(int(strlen(ch)),ln);
    in(ch);
    out(int(strlen(ch)),ln);
    flush();
}
快速读入输出
comment评论
Search
search