A cycle cover of a directed graph G is a set of cycles such that every vertex is in exactly one cycle. Recall that a cycle must include at least 2 nodes. Give a polynomial-time algorithm to determine whether G has a cycle cover. Justify your algorithm.