int main() { int n, m, i, tc; char sz1[4], sz2[4]; scanf("%d", &tc); while(tc--) { scanf("%d%d", &n, &m); memset(cap, 0, sizeof(cap)); nn = m+8; for(i = 0; i < m; i++) { scanf("%s%s", sz1, sz2); cap[sz_idx(sz1)][7+i] = cap[sz_idx(sz2)][7+i] = 1; } for(i = 1; i <= 6; i++) cap[0][i] = n/6; for(i = 0; i < m; i++) cap[7+i][7+m] = 1; if(edmonds_karp() == m) printf("YES\n"); else printf("NO\n"); } return 0; }
int main() { add_edge(0, 1, 3); add_edge(0, 2, 3); add_edge(1, 2, 2); add_edge(1, 3, 3); add_edge(2, 4, 2); add_edge(3, 4, 1); add_edge(3, 5, 2); add_edge(4, 5, 3); assert(edmonds_karp(6, 0, 5) == 5); return 0; }