// Author: Lech Duraj #include #include #include #include #include using namespace std; typedef pair PI; const int delta = 11; const int maxn = 2000; vector children[maxn]; vector G[maxn]; bool L[maxn][maxn]; bool A[delta][delta]; int depth[maxn]; int parent[maxn]; int M[1< &possible) { M[0] = 0; int d = children[i].size(); for(int s = 1; s < (1 << d); s++) { M[s] = 0; for(int x = 0; x < d; x++) for(int y = 0; y < d; y++) if ((x!=y) && (s & (1< allvert; for(int i=0; i()); int result = 0; for(int i=0; i possible; result += matching(x, possible); for(int v : possible) if (!L[v][x]) for(int z=0; z