towers.cpp: In function 'long long int dfs(long long int, long long int)':
towers.cpp:36:2: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
36 | if (!lans) return rans; if (!rans) return lans;
| ^~
towers.cpp:36:26: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
36 | if (!lans) return rans; if (!rans) return lans;
| ^~
towers.cpp: In function 'void init0(long long int)':
towers.cpp:72:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
72 | for (int i=1; i<h.size(); i++) pr[i] = pr[i-1] + (lc[i]==-1 && rc[i]==-1);
| ~^~~~~~~~~
towers.cpp:73:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
73 | for (int i=0; i<h.size(); i++) if (lc[i]!=-2) usef.push_back(h[i]);
| ~^~~~~~~~~
towers.cpp:74:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
74 | for (int i=0; i<usef.size()-1; i++) nxt[usef[i]] = usef[i+1];
| ~^~~~~~~~~~~~~~
towers.cpp:75:17: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
75 | for (int i=1; i<usef.size(); i++) prv[usef[i]] = usef[i-1];
| ~^~~~~~~~~~~~