add: fast io
This commit is contained in:
parent
29ae86a934
commit
d2ae7650a0
|
@ -0,0 +1,22 @@
|
||||||
|
char *p1,*p2,buf[100000];
|
||||||
|
#define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
|
||||||
|
inline int fastread() {
|
||||||
|
int x=0,f=1;
|
||||||
|
char ch=nc();
|
||||||
|
while(ch<48||ch>57) {
|
||||||
|
if(ch=='-') f=-1;
|
||||||
|
ch=nc();
|
||||||
|
}
|
||||||
|
while(ch>=48&&ch<=57)
|
||||||
|
x=x*10+ch-48,ch=nc();
|
||||||
|
return x*f;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fastwrite(int x) {
|
||||||
|
if(x<0) putchar('-'),x=-x;
|
||||||
|
if(x>9) fastwrite(x/10);
|
||||||
|
putchar(x%10+'0');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ private:
|
||||||
else set(m + 1, t, p * 2 + 1, x, c);
|
else set(m + 1, t, p * 2 + 1, x, c);
|
||||||
pull(p);
|
pull(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void range_apply(size_type s, size_type t, size_type p, size_type l, size_type r, const tag_type& c) {
|
void range_apply(size_type s, size_type t, size_type p, size_type l, size_type r, const tag_type& c) {
|
||||||
if (l <= s && t <= r) {
|
if (l <= s && t <= r) {
|
||||||
d[p].apply(c, t - s + 1);
|
d[p].apply(c, t - s + 1);
|
||||||
|
@ -73,7 +73,7 @@ public:
|
||||||
void set(size_type i, const info_type& c) {
|
void set(size_type i, const info_type& c) {
|
||||||
set({}, _max, 1, i, c);
|
set({}, _max, 1, i, c);
|
||||||
}
|
}
|
||||||
|
|
||||||
void range_apply(size_type l, size_type r, const tag_type& c) {
|
void range_apply(size_type l, size_type r, const tag_type& c) {
|
||||||
range_apply({}, _max, 1, l, r, c);
|
range_apply({}, _max, 1, l, r, c);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue