Группировка массива. Всего 50к элементов, в каждой группе в среднем 5 элементов. На каждую группу нужно создавать элемент - расширенную копию первого элемента группы - в котором будут аггрегироваться значения полей
Ну короче можешь дополнить код, который у меня выше. Обобщить его и будет тебе счастье (наверное)