package comsoc

// Gagnant de condorcet, retourne un slice vide ou de 1 élément
// A vérifier avec plus d'exemples
func CondorcetWinner(p Profile) (bestAlts []Alternative, err error) {
	for _, alt1 := range p[0] {
		winner := true
		for _, alt2 := range p[0] {
			if alt1 != alt2 {
				nbAlt1 := 0
				nbAlt2 := 0
				for _, pref := range p {
					if isPref(alt1, alt2, pref) {
						nbAlt1++
					} else {
						nbAlt2++
					}
				}
				if nbAlt1 <= nbAlt2 {
					winner = false
				}
			}
		}
		if winner {
			return []Alternative{alt1}, nil
		}
	}
	return []Alternative{}, nil
}