/in/foo.cc: In function 'int main()':
/in/foo.cc:168:17: error: conflicting declaration 'std::vector<int> S_right'
168 | vector<int> S_right = get_S(cats_right);
| ^~~~~~~
/in/foo.cc:153:9: note: previous declaration as 'int S_right'
153 | int S_right = cats_right.size();
| ^~~~~~~
/in/foo.cc:175:21: error: conflicting declaration 'std::vector<int> S_left'
175 | vector<int> S_left = get_S(cats_left);
| ^~~~~~
/in/foo.cc:174:13: note: previous declaration as 'int S_left'
174 | int S_left = cats_left.size();
| ^~~~~~
/in/foo.cc:182:81: error: invalid initialization of reference of type 'const std::vector<int>&' from expression of type 'int'
182 | int inter = intersect_size(cats_right, a, cats_left, b, i+1, i, S_right, S_left);
| ^~~~~~~
/in/foo.cc:72:39: note: in passing argument 7 of 'int intersect_size(const std::vector<Category>&, int, const std::vector<Category>&, int, int, int, const std::vector<int>&, const std::vector<int>&)'
72 | const vector<int>& S_right, const vector<int>& S_left) {
| ~~~~~~~~~~~~~~~~~~~^~~~~~~