Пример #1
0
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;
}