./Main.cpp:94:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
94 | const size_t size() const { return list.size(); }
| ^~~~~
./Main.cpp:95:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
95 | const void clear() { list.clear(); }
| ^~~~~
./Main.cpp:96:5: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
96 | const void resize(int n) { list.resize(n); }
| ^~~~~
./Main.cpp: In lambda function:
./Main.cpp:238:27: warning: unused parameter 'v' [-Wunused-parameter]
238 | auto addnode = [&](ll v, ll a) -> ll { return 1 - a; };
| ~~~^
./Main.cpp: In function 'int main()':
./Main.cpp:236:14: warning: unused variable 'WHITE' [-Wunused-variable]
236 | const ll WHITE = 1, BLACK = 0;
| ^~~~~
./Main.cpp:236:25: warning: unused variable 'BLACK' [-Wunused-variable]
236 | const ll WHITE = 1, BLACK = 0;
| ^~~~~
./Main.cpp: In instantiation of 'Monoid ReRooting<Monoid, Weight>::get(int) [with Monoid = long long int; Weight = long long int]':
./Main.cpp:241:28: required from here
241 | REP(v, N) res += rr.get(v);
| ~~~~~~^~~
./Main.cpp:202:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Edge<long long int>, std::allocator<Edge<long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
202 | for (int i = 0; i < G[v].size(); ++i) {
| ~~^~~~~~~~~~~~~
./Main.cpp: In instantiation of 'Monoid ReRooting<Monoid, Weight>::rec(int, int) [with Monoid = long long int; Weight = long long int]':
./Main.cpp:195:9: required from 'void ReRooting<Monoid, Weight>::build() [with Monoid = long long int; Weight = long long int]'
195 | rec(root, nullparent);
| ^~~
./Main.cpp:154:9: required from 'ReRooting<Monoid, Weight>::ReRooting(const Graph<Weight>&, const MergeFunc&, const AddNodeFunc&, const Monoid&) [with Monoid = long long int; Weight = long long int; MergeFunc = std::function<long long int(long long int, long long int)>; AddNodeFunc = std::function<long long int(int, long long int)>]'
154 | build();
| ^~~~~
./Main.cpp:239:39: required from here
239 | ReRooting<ll> rr(G, op, addnode, 0);
| ^
./Main.cpp:161:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Edge<long long int>, std::allocator<Edge<long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
161 | for (int i = 0; i < G[v].size(); ++i) {
| ~~^~~~~~~~~~~~~
./Main.cpp: In instantiation of 'void ReRooting<Monoid, Weight>::rerec(int, int, Monoid) [with Monoid = long long int; Weight = long long int]':
./Main.cpp:196:9: required from 'void ReRooting<Monoid, Weight>::build() [with Monoid = long long int; Weight = long long int]'
196 | rerec(root, nullparent, IDENTITY);
| ^~~~~
./Main.cpp:154:9: required from 'ReRooting<Monoid, Weight>::ReRooting(const Graph<Weight>&, const MergeFunc&, const AddNodeFunc&, const Monoid&) [with Monoid = long long int; Weight = long long int; MergeFunc = std::function<long long int(long long int, long long int)>; AddNodeFunc = std::function<long long int(int, long long int)>]'
154 | build();
| ^~~~~
./Main.cpp:239:39: required from here
239 | ReRooting<ll> rr(G, op, addnode, 0);
| ^
./Main.cpp:171:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Edge<long long int>, std::allocator<Edge<long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
171 | for (int i = 0; i < G[v].size(); ++i) {
| ~~^~~~~~~~~~~~~
./Main.cpp:180:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Edge<long long int>, std::allocator<Edge<long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
180 | for (int i = 0; i < G[v].size(); ++i) {
| ~~^~~~~~~~~~~~~
./Main.cpp:184:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<Edge<long long int>, std::allocator<Edge<long long int> > >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
184 | for (int i = 0; i < G[v].size(); ++i) {
| ~~^~~~~~~~~~~~~