supertrees.cpp: In member function 'int setunion::combine(int, int)':
supertrees.cpp:27:17: error: return-statement with no value, in function returning 'int' [-fpermissive]
27 | if (ra == rb) return;
| ^~~~~~
supertrees.cpp: In function 'int construct(std::vector<std::vector<int> >)':
supertrees.cpp:81:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
81 | for (int i = 0; i < g.size(); i++)
| ~~^~~~~~~~~~
supertrees.cpp:87:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
87 | for (int i = 0; i < g.size(); i++)
| ~~^~~~~~~~~~
supertrees.cpp:90:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
90 | for (int j = 1; j < g[i].size(); j++)
| ~~^~~~~~~~~~~~~
supertrees.cpp: In member function 'int setunion::combine(int, int)':
supertrees.cpp:32:9: warning: control reaches end of non-void function [-Wreturn-type]
32 | p[rb] = ra;