如题。中间那个 ... 运算符是个啥东西?搜了好久也没搜到。
struct buf{
char a[1<<25],*s,*t;
buf():s(a),t(a){
a[fread(a,1,sizeof a,stdin)]=0;
}
~buf(){fwrite(a,1,t-a,stdout);}
operator uint(){
int x=0;
while(*s>47)
x=x*10+*s++-48; ++s;
return x;
}
void out(uint n){
#define pyo(x) *t++=x
switch(n) {
case 1000000000 ... 2147483647:
pyo(48+n/1000000000); n%=1000000000;
case 100000000 ... 999999999:
pyo(48+n/100000000); n%=100000000;
case 10000000 ... 99999999:
pyo(48+n/10000000); n%=10000000;
case 1000000 ... 9999999:
pyo(48+n/1000000); n%=1000000;
case 100000 ... 999999:
pyo(48+n/100000); n%=100000;
case 10000 ... 99999:
pyo(48+n/10000); n%=10000;
case 1000 ... 9999:
pyo(48+n/1000); n%=1000;
case 100 ... 999:
pyo(48+n/100); n%=100;
case 10 ... 99:
pyo(48+n/10); n%=10;
}
pyo(48+n);
pyo(10);
}
}it;