Medium

Eat Pizzas!C++

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

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

// sort, greedy
class Solution {
public:
    long long maxWeight(vector<int>& pizzas) {
        const int l = size(pizzas) / 4;
        sort(begin(pizzas), end(pizzas), greater<int>());
        int64_t result = 0;
        for (int i = 0; i < (l + 1) / 2; ++i) {
            result += pizzas[i];
        }
        for (int i = (l + 1) / 2 + 1; i < (l + 1) / 2 + (l / 2) * 2; i += 2) {
            result += pizzas[i];
        }
        return result;
    }
};