2151. Maximum Good People Based on Statements - LeetCode Solution


Array Bit Masking

Python Code:

class Solution:
    def maximumGood(self, statements: List[List[int]]) -> int:
        n=len(statements)
        ans=0
        def check(mask):
            for i in range(n):
                if mask & (1<<i)!=0: good.add(i)
            for i in range(n):
                if i in good:
                    for j in range(n):
                        if statements[i][j]==0 and j in good: return False
                        if statements[i][j]==1 and j not in good: return False
            return True
        for i in range(1,1<<n):
            good=set()
            if check(i):
                ans=max(ans,len(good))
        return ans


Comments

Submit
0 Comments
More Questions

766A - Mahmoud and Longest Uncommon Subsequence
701B - Cells Not Under Attack
702A - Maximum Increase
1656D - K-good
1426A - Floor Number
876A - Trip For Meal
1326B - Maximums
1635C - Differential Sorting
961A - Tetris
1635B - Avoid Local Maximums
20A - BerOS file system
1637A - Sorting Parts
509A - Maximum in Table
1647C - Madoka and Childish Pranks
689B - Mike and Shortcuts
379B - New Year Present
1498A - GCD Sum
1277C - As Simple as One and Two
1301A - Three Strings
460A - Vasya and Socks
1624C - Division by Two and Permutation
1288A - Deadline
1617A - Forbidden Subsequence
914A - Perfect Squares
873D - Merge Sort
1251A - Broken Keyboard
463B - Caisa and Pylons
584A - Olesya and Rodion
799A - Carrot Cakes
1569B - Chess Tournament