int greedyAfterSort(List<Item> items) {
items.sort(this::priority);
int answer = initial();
for (Item item : items) {
if (compatible(item)) answer = take(answer, item);
}
return answer;
}
def greedy_after_sort(items) -> int:
answer = initial()
for item in sorted(items, key=priority):
if compatible(item):
answer = take(answer, item)
return answer
def greedyAfterSort(items: Vector[Item]): Int =
var answer = initial()
for item <- items.sortBy(priority) do
if compatible(item) then answer = take(answer, item)
answer
int greedyAfterSort(std::vector<Item>& items) {
std::sort(items.begin(), items.end(), priority);
int answer = initial();
for (const Item& item : items) {
if (compatible(item)) answer = take(answer, item);
}
return answer;
}