// Time: O(nlogn) // Space: O(n) class Solution { public: int stoneGameVI(vector& aliceValues, vector& bobValues) { vector> sorted_vals; vector 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>()); 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; } };