if (margin > 0) printf(" Margin: %s wins by %i votes\n", candidates[pairs[pair_index].winner], margin); else if (margin < 0) printf(" Margin: %s wins by %i votes\n", candidates[pairs[pair_index].loser], -margin); else printf(" TIE! Both have equal votes\n"); }
for (int i = 0; i < candidate_count; i++) { if (locked[end][i]) { if (creates_cycle_helper(start, i)) return true; } } return false; } cs50 tideman
if (!has_ties) printf("✓ No ties in sorted pairs (all margins unique)\n"); } if (margin > 0) printf(" Margin: %s wins
printf("\n=== FINAL LOCKED PAIRS ===\n"); for (int i = 0; i < candidate_count; i++) { for (int j = 0; j < candidate_count; j++) { if (locked[i][j]) { printf(" %s → %s\n", candidates[i], candidates[j]); } } } if (margin >
=== TIE-BREAKING VISUALIZATION === Total pairs created: 6 --- BEFORE SORTING --- Pair 1: Alice vs Bob Alice got 5 votes Bob got 3 votes Margin: Alice wins by 2 votes
// Function to display vote breakdown for a pair void display_pair_votes(int pair_index) { printf("\nPair %i: %s vs %s\n", pair_index + 1, candidates[pairs[pair_index].winner], candidates[pairs[pair_index].loser]); printf(" %s got %i votes\n", candidates[pairs[pair_index].winner], preferences[pairs[pair_index].winner][pairs[pair_index].loser]); printf(" %s got %i votes\n", candidates[pairs[pair_index].loser], preferences[pairs[pair_index].loser][pairs[pair_index].winner]);