Returns a list of all winning candidates when we use brute force to compute Bayesian
        utilities for an election profile. This function assumes that 
        getCandScoresMapBruteForce(profile) is implemented for the child MechanismMcmc class.
        
        :ivar Profile profile: A Profile object that represents an election profile.

def getWinnersBruteForce(self, profile):
        """
        Returns a list of all winning candidates when we use brute force to compute Bayesian
        utilities for an election profile. This function assumes that 
        getCandScoresMapBruteForce(profile) is implemented for the child MechanismMcmc class.
        
        :ivar Profile profile: A Profile object that represents an election profile.
        """

        candScoresMapBruteForce = self.getCandScoresMapBruteForce(profile) 

        # Check whether the winning candidate is the candidate that maximizes the score or 
        # minimizes it.
        if self.maximizeCandScore == True:
            bestScore = max(candScoresMapBruteForce.values())
        else:
            bestScore = min(candScoresMapBruteForce.values())
        
        # Create a list of all candidates with the winning score and return it.
        winners = []
        for cand in candScoresMapBruteForce.keys():
            if candScoresMapBruteForce[cand] == bestScore:
                winners.append(cand)
        return winners