C++ | Easy Solution | Logic explained
Approach-\n\n## Fact:\n> Bitwise AND on the complete array is the minimum bitwise AND value you can get between all subarrays.\n\n## Case 1: Bitwise AND of the 
# Approach-\n\n## Fact:\n> Bitwise AND on the complete array is the minimum bitwise AND value you can get between all subarrays.\n\n## Case 1: Bitwise AND of the Array is Greater Than 0\nIn this case, you cannot achieve *****"The sum of scores of the subarrays is the minimum possible,"***** because no subarray will give you a smaller AND value than the entire array itself. Therefore, the answer is directly 1, meaning you cannot divide the array into subarrays.\n\n## Case 2: Bitwise AND of the Array is 0\nIn this scenario, count how many subarrays have a bitwise AND value of 0. This count represents your answer.\n\nHappy Coding!\nPlease upvote\uD83E\uDD79\n\n\n\n# Code\n```\nclass Solution {\npublic:\n    int maxSubarrays(vector<int>& nums) {\n        int minAnd = 1;\n        int zeros = 0;\n        for(int i = 0;i < nums.size(); ++i){\n            minAnd = (minAnd & nums[i]);\n            zeros += (nums[i] == 0);\n        }\n        int ans = 0;\n        int andd = INT_MAX;\n        for(int i = 0; i < nums.size(); ++i){\n            andd = andd & nums[i];\n            if(andd == minAnd){\n                ans++;\n                andd = INT_MAX;\n            }\n        }\n        return zeros == nums.size()? nums.size():minAnd>0?1:max(ans,1);\n    }\n};\n```
['C++']