rot.cpp: In function 'void upd(long long int, long long int, long long int, long long int, long long int)':
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:54:13: note: in expansion of macro 'tm'
54 | if (idx <= tm) upd(idx, val, ls);
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:14:24: note: in expansion of macro 'tm'
14 | #define ls v << 1, tl, tm
| ^~
rot.cpp:54:31: note: in expansion of macro 'ls'
54 | if (idx <= tm) upd(idx, val, ls);
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:15:24: note: in expansion of macro 'tm'
15 | #define rs v << 1 | 1, tm + 1, tr
| ^~
rot.cpp:55:21: note: in expansion of macro 'rs'
55 | else upd(idx, val, rs);
| ^~
rot.cpp: In function 'long long int get1(long long int, long long int, long long int, long long int)':
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:61:11: note: in expansion of macro 'tm'
61 | if (l == tm + 1) return t[v << 1 | 1];
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:62:11: note: in expansion of macro 'tm'
62 | if (l <= tm) return get1(l, ls) + t[v << 1 | 1];
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:14:24: note: in expansion of macro 'tm'
14 | #define ls v << 1, tl, tm
| ^~
rot.cpp:62:30: note: in expansion of macro 'ls'
62 | if (l <= tm) return get1(l, ls) + t[v << 1 | 1];
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:15:24: note: in expansion of macro 'tm'
15 | #define rs v << 1 | 1, tm + 1, tr
| ^~
rot.cpp:63:30: note: in expansion of macro 'rs'
63 | if (l <= tr) return get1(l, rs);
| ^~
rot.cpp: In function 'long long int get2(long long int, long long int, long long int, long long int)':
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:69:6: note: in expansion of macro 'tm'
69 | if (tm == r) return t[v << 1];
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:70:6: note: in expansion of macro 'tm'
70 | if (tm <= r) return get2(r, rs) + t[v << 1];
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:15:24: note: in expansion of macro 'tm'
15 | #define rs v << 1 | 1, tm + 1, tr
| ^~
rot.cpp:70:30: note: in expansion of macro 'rs'
70 | if (tm <= r) return get2(r, rs) + t[v << 1];
| ^~
rot.cpp:13:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
13 | #define tm (tl + tr >> 1)
| ~~~^~~~
rot.cpp:14:24: note: in expansion of macro 'tm'
14 | #define ls v << 1, tl, tm
| ^~
rot.cpp:71:30: note: in expansion of macro 'ls'
71 | if (tl <= r) return get2(r, ls);
| ^~