Medium

Stone Game VIC++

Full explanation · Time O(nlogn) · Space O(n)

// Time:  O(nlogn)
// Space: O(n)

class Solution {
public:
    int stoneGameVI(vector<int>& aliceValues, vector<int>& bobValues) {
        vector<vector<int>> sorted_vals;
        vector<int> result(2);
        for (int i = 0; i < size(aliceValues); ++i) {
            sorted_vals.push_back({aliceValues[i] + bobValues[i],
                                   aliceValues[i], bobValues[i]});
        }
        sort(begin(sorted_vals), end(sorted_vals), greater<vector<int>>());
        for (int i = 0; i < size(sorted_vals); ++i) {
            result[i % 2] += sorted_vals[i][1 + i % 2];
        }
        return (result[0] == result[1]) ? 0 : (result[0] > result[1]) ? 1 : -1;
    }
};