普通版:
long long read()
{
char ch;
bool flag = false;
int a = 0;
while(!((((ch = getchar()) >= '0') && (ch <= '9')) || (ch == '-')));
if(ch != '-')
{
a *= 10;
a += ch - '0';
}
else
{
flag = true;
}
while(((ch = getchar()) >= '0') && (ch <= '9'))
{
a *= 10;
a += ch - '0';
}
if(flag)
{
a = -a;
}
return a;
}
进阶版:
const int N1 = 8E7 ;
inline char nc() {
static char buf[N1],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,N1,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;
}
void write(int a) {
if(a < 0) {
putchar('-');
a = -a;
}
if(a >= 10) {
write(a / 10);
}
putchar(a % 10 + '0');
}