#include #include #include #include class Solution { public: int maximumSum(std::vector &nums) { int n = nums.size(); int ans = 0; std::vector b[3]; for (auto num : nums) b[num % 3].push_back(num); for (int i = 0; i < 3; i++) { std::sort(b[i].begin(), b[i].end(), [](int a, int b) { return a > b; }); if (b[i].size() >= 3) { ans = std::max(std::reduce(b[i].begin(), b[i].begin() + 3), ans); } } if (b[0].size() && b[1].size() && b[2].size()) { ans = std::max(ans, b[0][0] + b[1][0] + b[2][0]); } return ans; } };