1402. Reducing Dishes (Hard) - TengnanYao/daily_leetcode GitHub Wiki

class Solution(object):
    def maxSatisfaction(self, satisfaction):
        """
        :type satisfaction: List[int]
        :rtype: int
        """
        satisfaction.sort()
        result = sum([satisfaction[j] * (j + 1) for j in range(len(satisfaction))])
        s = sum(satisfaction)
        for num in satisfaction:
            if num >= 0:
                break
            result = max(result, result - s)
            s -= num
        return result