C++
Intuition\n Describe your first thoughts on how to solve this problem. \nBitwise &, either reduces the value or keeps it same.\nSo minimum score of an array is 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\nBitwise &, either reduces the value or keeps it same.\nSo minimum score of an array is always the bitwise & of all elements.\nIf minimum score is not 0, then it is optimal to keep all elements in one subarray to minimise the score.\nOtherwise, all of the subarrays should have a score of 0, we can greedily split the array while trying to make each subarray as small as possible.\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity: O(N)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity: O(1)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\npublic:\n    int maxSubarrays(vector<int>& nums) {\n        int n = nums.size();\n        int maxS = 0;\n        int cumulativeAnd = INT_MAX;\n\n        for (int i = 0; i < n; ++i) {\n            cumulativeAnd &= nums[i];\n            if (cumulativeAnd == 0) {\n                maxS++;\n                cumulativeAnd = INT_MAX;\n            }\n        }\n        return maxS > 0 ? maxS : 1;\n    }\n};\n```
['Bit Manipulation', 'C++']