Index: lib/typical/unionfind.cpp ================================================================== --- lib/typical/unionfind.cpp +++ lib/typical/unionfind.cpp @@ -17,10 +17,12 @@ { return nc; } int size(int a) { return sz[Find(a)]; } int Find(int a) { return uf[a]==a ? a : uf[a]=Find(uf[a]); } + // Semi-compression w.o. recursion. + //{ while(uf[a] != a) a=uf[a]=uf[uf[a]]; return a; } bool Union(int a, int b) { a = Find(a); b = Find(b); if( a != b )