/in/foo.cc: In member function 'void SegmentTree::Build(int, int, int)':
/in/foo.cc:17:29: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
17 | int j=i<<1,mid=l+r>>1;
| ~^~
/in/foo.cc: In member function 'void SegmentTree::Add(int, int, int, double, double)':
/in/foo.cc:29:34: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
29 | int j=i<<1,mid=s[i].l+s[i].r>>1;
| ~~~~~~^~~~~~~
/in/foo.cc: In member function 'void SegmentTree::Change(int, int, int, double, double)':
/in/foo.cc:47:34: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
47 | int j=i<<1,mid=s[i].l+s[i].r>>1;
| ~~~~~~^~~~~~~
/in/foo.cc: In constructor 'SegmentTree::node::node(int, int)':
/in/foo.cc:72:30: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
72 | l=_l,r=_r,c=S=T=0;
| ~^~~~
/in/foo.cc: In member function 'void SegmentTree::PushDown(int)':
/in/foo.cc:105:26: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
105 | s[i].c=s[i].S=s[i].T=0;
| ~~~~~~^~~~~~~~~
/in/foo.cc: In member function 'void SegmentTree::Sum(int, int, int)':
/in/foo.cc:117:34: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
117 | int j=i<<1,mid=s[i].l+s[i].r>>1;
| ~~~~~~^~~~~~~