#include #include #include #pragma warning(disable:4996) using namespace std; class UF { private: int num; vector par; vector siz; public: UF(int n): num(n) { par.resize(n); siz.resize(n); int i; for(i=0; i > g; // target vertex vector vis; vector fin; bool dfs(int curr) { vis[curr]=1; int siz=(int)g[curr].size(); int i; for(i=0; i& a, const vector& b, const vector c) { g.resize(n); vis.resize(n); fin.resize(n); int i; UF uf(n); for(i=0; i a(m),b(m),c(m); int i; for(i=0; i