Для данной сортировки используем алгоритм сортировки слиянием
В начале разбиваем арбузы на 2 группы по 2Каждую группу взвешиваем и сортируем (т.е. всего 2 взвешивания)Теперь собираем вместе, сравниваем сначала более легкие арбузы и находим самый легкий (всего 3 взвешивания)Теперь сравниваем тяжелый арбуз, что в группе с самым легким и более легкий из другой группы, и определяем второй по легкости (всего 4 взвешивания)Потом взвешиваем оставшиеся арбузы и докладываем их по порядку (всего 5 взвешивания)
Внимание! Если программа не работает, обновите версию!
1. В принципе, массив тут совершенно не нужен:
begin
ReadSeqIntegerWhile(t->t<>0).Where(t->(t mod 4=0) and (t mod 10=2))
.DefaultIfEmpty.Average.Println
end.
2. Но если хочется удлинить решение и получить лишний расход памяти, можно и с массивом:
begin
var a:=ReadSeqIntegerWhile(t->t<>0).ToArray;
a.Where(t->(t mod 4=0) and (t mod 10=2)).DefaultIfEmpty.Average.Println
end.