正整数
fread版:
inline char nc(){ //快的一批的fread快读
static char buf[100000],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++;
}
inline int read(){
char ch=nc();
int sum=0;
while(!(ch>='0'&&ch<='9'))ch=nc();
while(ch>='0'&&ch<='9')sum=sum*10+ch-48,ch=nc();
return sum;
}
inline void out(register int a){
if(a>=10)out(a/10);
putchar(a%10+'0');
}
getchar版:
inline int in()
{
int res=0;
char c=getchar();
while(c<'0'||c>'9') c=getchar();
while(c>='0'&&c<='9') res=res*10+c-48,c=getchar();
return res;
}
整数
inline int in()
{
int res=0,p=1;
char c=getchar();
while(c<'0'||c>'9') {if(c=='-') p=-1; c=getchar();}
while(c>='0'&&c<='9') res=res*10+c-48,c=getchar();
return p*res;
}
//非递归输出
inline void out(int x)
{
int ans[18],p=0;
while(x){
ans[p++]=x%10;
x/=10;
}
while(p) putchar(ans[--p]+48);
putchar(10);
}
//递归写法
void out(int x)
{
if (x>9) out(x/10);
putchar(x%10+48);
}