// Run the Tideman algorithm char* winner = tideman(candidates, num_candidates, voters, num_voters);
Check: creates_cycle(C, A) C’s outgoing in locked? C has no outgoing edges yet. So returns false. Then lock C→A. Now graph: A→B, B→C, C→A → cycle! Something’s wrong. This reveals the subtlety: Cs50 Tideman Solution