В числе не меньше трех цифр меньше пяти, значит максимум две могут быть больше. Для того, чтобы получить максимально возможное число ставим 9 и 9 в первые разряды (число сотен и десятков тысяч) . Т. е. наше число пока будет начинаться на 99. Поскольку цифр меньше пяти минимум три, дописываем к нашему числу три четверки, поскольку это максимальное число меньшее пяти. Получаем число 99444. Видим, что нечетных чисел здесь два, а должно быть минимум три. Для того, чтобы число осталось максимальным из возможных меняем четверку в конце на тройку. Получаем окончательно 99443.
ответ: 99443
//Версия 3.3, сборка 1634 (14.02.2018)
begin
var a := MatrRandomInteger(ReadInteger('m='), ReadInteger('n='), -50, 50); a.Println();
Range(0, a.ColCount - 1).Select(t -> a.Col(t).Where(t -> t > 0).Count).Print;
end.
Пример:
m= 4
n= 8
-48 24 13 -37 -42 11 -35 8
16 40 -31 -21 -15 7 36 24
28 -19 -35 -42 10 16 -1 -37
33 39 19 -8 37 -26 12 -12
3 3 2 0 2 3 2 2