快速读入int
inline int IntRead(){
char ch = getchar();
int s = 0, w = 1;
while(ch < '0' || ch > '9'){
if(ch == '-') w = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
s = s * 10 + ch - '0',
ch = getchar();
}
return s * w;
}
快速读入longlong
inline ll llRead(){
char ch = getchar();
ll s = 0, w = 1;
while(ch < '0' || ch > '9'){
if(ch == '-') w = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
s = s * 10 + ch - '0',
ch = getchar();
}
return s * w;
}
快速读入string
inline string StringRead(){
string str;
char s = getchar();
while (s == ' ' || s == '\n' || s == '\r'){
s = getchar();
}
while (s != ' ' && s != '\n' && s != '\r'){
str += s;
s = getchar();
}
return str;
}
快速读入double
inline double DoubleRead(){
long long s = 0, w = 1, k = 0, n = 0, m = 0;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-') w = -1;
ch = getchar();
}
while((ch >= '0' && ch <= '9') || ch == '.')
{
if (ch == '.')
n = 1;
else if (n == 0)
s = s * 10 + ch - '0';
else k = k * 10 + ch - '0', m++;
ch = getchar();
}
return (pow(0.1, m) * k + s) * w;
}
128输入输出
inline __int128 read(){__int128 x = 0, f = 1;char ch = getchar();while(ch < '0' || ch > '9'){if(ch == '-'){f = -1;}ch = getchar();}while(ch >= '0' && ch <= '9'){x = x * 10 + ch - '0';ch = getchar();}return x * f;}
inline void print(__int128 x){if(x < 0){putchar('-');x = -x;}if(x > 9){print(x / 10);}putchar(x % 10 + '0');}