萌新今天用了两次 fread 在 洛谷上都 WA 了,第一次怕写错了,第二次从别人的题解里剥的,然而都不对,求解释:
没有负数,没有 long long
,实测只写快读可以 AC.
我自己的:
char buf[1<<20],*is=buf,*it=buf;
inline char g()
{
if(is==it) it=(is=buf)+fread(buf,1,1<<20,stdin);
return (is==it)?EOF:*is++;
}
inline int read()
{
int x=0;
char c=g();
while(c<'0'||c>'9') c=g();
while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^'0'),c=g();
return x;
}
抄的(:
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[1<<21],*p1=buf,*p2=buf;
inline int read()
{
int x=0;
char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^'0'),c=getchar();
return x;
}