【模板】:快读+int128

洛谷给的模板

int128无法用常规I/O,正好我还不会快读,就放一起了

...arg是函数缺省的参数

x=(x<<1)+(x<<3)+(ch^48)就是x*2+x*8+ch转为数字,利用位运算快一点

#include<bits/stdc++.h>
using namespace std;
template <typename T> inline void read(T& x) {
    x=0;T f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9')x=(x<<1)+(x<<3)+(ch^48),ch=getchar();
    x=x*f;
    return;
}
template <typename T,typename ...Arg>void read(T& x,Arg& ...arg){
    read(x);
    read(arg...);
}
template <typename T>inline void write(T x) {
    if(x<0)putchar('-'),x=-x;
    if(x<10)putchar(x+'0');
    else write(x/10),putchar(x%10+'0');
}
template <typename T,typename ...Arg>void write(T& x,Arg& ...arg){
    write(x);
    putchar(' ');
    write(arg...);
}
int main(){
    __int128 x;
    read(x);
    write(x,x,x);
}

 

posted @ 2022-01-28 17:26  遥望未来weilai  阅读(116)  评论(0)    收藏  举报