void read(ll &x)//读入挂(一位一位读入进行位运算,不用再转化了,会快一点) { x=0;//储存读入的结果 int f=1;//符号 char ch=getchar();//读入第一个字符 while(ch<'0'||ch>'9')//如果非数字 { if (ch=='-') f=-1;//如果负号则标记 ch=getchar();//读入下一个字符 } while(ch>='0'&&ch<='9')//如果是数字 { x=(x<<3)+(x<<1)+(ch^48);//x<<3+x<<1相当于*10,但是位运算更快 ch=getchar();//读入下一个字符 } x=x*f;//符号转化 }