salesman.cpp: In member function 'lint SEG::init(int, int, int)':
salesman.cpp:22:41: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
22 | return T[idx] = max(init(lo, lo + hi >> 1, 2 * idx), init(1 + (lo + hi >> 1), hi, 2 * idx + 1));
| ~~~^~~~
salesman.cpp:22:75: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
22 | return T[idx] = max(init(lo, lo + hi >> 1, 2 * idx), init(1 + (lo + hi >> 1), hi, 2 * idx + 1));
| ~~~^~~~
salesman.cpp: In member function 'lint SEG::update(int, lint, int, int, int)':
salesman.cpp:27:49: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
27 | return T[idx] = max(update(a, x, lo, lo + hi >> 1, 2 * idx), update(a, x, 1 + (lo + hi >> 1), hi, 2 * idx + 1));
| ~~~^~~~
salesman.cpp:27:91: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
27 | return T[idx] = max(update(a, x, lo, lo + hi >> 1, 2 * idx), update(a, x, 1 + (lo + hi >> 1), hi, 2 * idx + 1));
| ~~~^~~~
salesman.cpp: In member function 'lint SEG::query(int, int, int, int, int)':
salesman.cpp:32:39: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
32 | return max(query(a, b, lo, lo + hi >> 1, 2 * idx), query(a, b, 1 + (lo + hi >> 1), hi, 2 * idx + 1));
| ~~~^~~~
salesman.cpp:32:80: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
32 | return max(query(a, b, lo, lo + hi >> 1, 2 * idx), query(a, b, 1 + (lo + hi >> 1), hi, 2 * idx + 1));
| ~~~^~~~
salesman.cpp: In function 'int main()':
salesman.cpp:59:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
59 | for (int i = 0; i < V.size(); i++) {
| ~~^~~~~~~~~~
salesman.cpp:68:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
68 | if (i != V.size() - 1) mx = max(mx + A[x].vb, T.query(A[x].va.vb, A[x + 1].va.vb - 1));
| ~~^~~~~~~~~~~~~~~