Pure math problem I would say
```\n bool stoneGameIX(vector& stones) {\n        unordered_mapcount; \n        for(auto x: stones) count[x%3]++;\n        //if even, then alice will for sure l
```\n bool stoneGameIX(vector<int>& stones) {\n        unordered_map<int, int >count; \n        for(auto x: stones) count[x%3]++;\n        //if even, then alice will for sure lose, if count of 1 and 2 are non zero. \n        if(count[0]%2==0) return count[1]!=0 && count[2]!=0;\n        else{\n            //alice can win only if count of 1 and 2 >=3; \n            int difference = abs(count[1]-count[2]); \n            if(difference >=3) return true; \n            else return false; \n        }\n    }
['C', 'C++']