train.cpp: In function 'bool dfs(int)':
train.cpp:23:43: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
23 | if(x!=-1 and vis[x]==-1) return res[u]=dfs(x);
train.cpp:37:43: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
37 | if(x!=-1 and vis[x]==-1) return res[u]=dfs(x);
train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:42:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
42 | for(int i=0;i<a.size();i++){
| ~^~~~~~~~~
train.cpp:49:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
49 | for(int i=0;i<u.size();i++){
| ~^~~~~~~~~
train.cpp:55:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
55 | for(int i=0;i<a.size();i++){
| ~^~~~~~~~~