/in/foo.cc: In function 'void Merge(int&, int, int, int, int)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:22:15: note: in expansion of macro 'mid'
Merge(u.lc,l,mid,t[Lx].lc,t[Rx].lc),Merge(u.rc,mid+1,r,t[Lx].rc,t[Rx].rc);
^~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:22:49: note: in expansion of macro 'mid'
Merge(u.lc,l,mid,t[Lx].lc,t[Rx].lc),Merge(u.rc,mid+1,r,t[Lx].rc,t[Rx].rc);
^~~
/in/foo.cc: In function 'void YBuild(int&, int, int, int)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:28:21: note: in expansion of macro 'mid'
else YBuild(u.lc,l,mid,id),YBuild(u.rc,mid+1,r,id),Upd(x);
^~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:28:41: note: in expansion of macro 'mid'
else YBuild(u.lc,l,mid,id),YBuild(u.rc,mid+1,r,id),Upd(x);
^~~
/in/foo.cc: In function 'void XBuild(int, int, int)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:13:23: note: in expansion of macro 'mid'
#define lson x << 1,l,mid
^~~
/in/foo.cc:36:9: note: in expansion of macro 'lson'
XBuild(lson),XBuild(rson),Merge(rt[x],1,m,rt[x<<1],rt[x<<1|1]);
^~~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:14:25: note: in expansion of macro 'mid'
#define rson x << 1 | 1,mid + 1,r
^~~
/in/foo.cc:36:22: note: in expansion of macro 'rson'
XBuild(lson),XBuild(rson),Merge(rt[x],1,m,rt[x<<1],rt[x<<1|1]);
^~~~
/in/foo.cc: In function 'void YModify(int, int, int, LL)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:42:17: note: in expansion of macro 'mid'
YModify(u.lc,l,mid,det),YModify(u.rc,mid+1,r,det),Upd(x);
^~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:42:39: note: in expansion of macro 'mid'
YModify(u.lc,l,mid,det),YModify(u.rc,mid+1,r,det),Upd(x);
^~~
/in/foo.cc: In function 'LL YQry(int, int, int)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:48:25: note: in expansion of macro 'mid'
return gcd(YQry(u.lc,l,mid),YQry(u.rc,mid+1,r));
^~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:48:40: note: in expansion of macro 'mid'
return gcd(YQry(u.lc,l,mid),YQry(u.rc,mid+1,r));
^~~
/in/foo.cc: In function 'void XModify(int, int, int)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:13:23: note: in expansion of macro 'mid'
#define lson x << 1,l,mid
^~~
/in/foo.cc:54:10: note: in expansion of macro 'lson'
XModify(lson),XModify(rson);
^~~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:14:25: note: in expansion of macro 'mid'
#define rson x << 1 | 1,mid + 1,r
^~~
/in/foo.cc:54:24: note: in expansion of macro 'rson'
XModify(lson),XModify(rson);
^~~~
/in/foo.cc: In function 'LL XQry(int, int, int)':
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:13:23: note: in expansion of macro 'mid'
#define lson x << 1,l,mid
^~~
/in/foo.cc:62:18: note: in expansion of macro 'lson'
return gcd(XQry(lson),XQry(rson));
^~~~
/in/foo.cc:12:16: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
#define mid (l + r >> 1)
~~^~~
/in/foo.cc:14:25: note: in expansion of macro 'mid'
#define rson x << 1 | 1,mid + 1,r
^~~
/in/foo.cc:62:29: note: in expansion of macro 'rson'
return gcd(XQry(lson),XQry(rson));
^~~~