mouse.cpp: In function 'void random_shuffle(std::vector<int>&, int)':
mouse.cpp:29:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
29 | for(int i = f; i < v.size(); i++) swap(v[i], v[rng() % (i + 1 - f) + f]);
| ~~^~~~~~~~~~
mouse.cpp: In function 'void solve(int)':
mouse.cpp:62:13: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
62 | while(s = query(q)){
| ~~^~~~~~~~~~
mouse.cpp:88:13: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
88 | while(s = query(q)){
| ~~^~~~~~~~~~
mouse.cpp:99:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
99 | for(int i = 1; i < x.size(); i++) swap(x[i].second, x[rng() % i + 1].second);
| ~~^~~~~~~~~~
mouse.cpp:100:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
100 | for(int i = 0; i < x.size(); i++) q[x[i].first] = x[i].second;
| ~~^~~~~~~~~~
mouse.cpp:116:9: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
116 | for(int i = 0; i < sz; i++) q[x[i].first] = x[i].second; for(auto i : to_erase) x.erase(x.begin() + i);
| ^~~
mouse.cpp:116:66: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
116 | for(int i = 0; i < sz; i++) q[x[i].first] = x[i].second; for(auto i : to_erase) x.erase(x.begin() + i);
| ^~~
mouse.cpp:119:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
119 | for(int i = 0; i < x.size(); i++) q[x[i].first] = x[i].second;
| ~~^~~~~~~~~~
/usr/bin/ld: /tmp/ccUPdv3s.o: in function `binary_search(std::vector<std::pair<int, int>, std::allocator<std::pair<int, int> > >&, std::vector<int, std::allocator<int> >&, int, int, int, int, int)':
mouse.cpp:(.text+0x4bc): undefined reference to `query(std::vector<int, std::allocator<int> >&)'
/usr/bin/ld: /tmp/ccUPdv3s.o: in function `solve(int)':
mouse.cpp:(.text+0x6d7): undefined reference to `query(std::vector<int, std::allocator<int> >&)'
/usr/bin/ld: mouse.cpp:(.text+0x751): undefined reference to `query(std::vector<int, std::allocator<int> >&)'
/usr/bin/ld: mouse.cpp:(.text+0x81d): undefined reference to `query(std::vector<int, std::allocator<int> >&)'
/usr/bin/ld: mouse.cpp:(.text+0x97a): undefined reference to `query(std::vector<int, std::allocator<int> >&)'
/usr/bin/ld: /tmp/ccUPdv3s.o:mouse.cpp:(.text+0x9b8): more undefined references to `query(std::vector<int, std::allocator<int> >&)' follow
collect2: error: ld returned 1 exit status