.
mmapmmapmmap真的是黑科技,用了之后时间减半
但是输出还是只能靠writewritewrite,不知道为什么用mmapmmapmmap会RERERE
应该算是一个比较好的快速读写模板了吧,到时候再把输出也换成mmapmmapmmap
(以下代码均在LinuxLinuxLinux环境下编译,windowswindowswindows的g++g++g++不行)
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<algorithm>
#include<sys/mman.h>
using namespace std;
struct buf{
char*s;
buf():s((char*)mmap(0,150000010,PROT_READ,MAP_PRIVATE,fileno(stdin),0)){}
operator int(){
int x=0,y=0;
while(*s<48) ++s;
while(*s>32) x=x*10+*s++-48;
return x;
}
}it;
struct ouf{
char*s,*t,*r,*l;
ouf():s((char*)malloc(500000000)),r((char*)malloc(20)),t(s){}
~ouf(){ write(1,s,t-s); }
inline void operator()(int x){
if(!x) *t++=48;
else{
for(l=r;x;x/=10) *++l=x%10|48;
for(;l!=r;*t++=*l--);
}
*t++='\n';
}
} ot;
int main(){
ot(it+it);
}