// PascalABC.NET 3.2, сборка 1411 от 23.03.2017
// Внимание! Если программа не работает, обновите версию!
begin
var a:=ArrRandom(ReadInteger('n='),-10,10); a.Println;
Writeln('Последнее вхождение минимального элемента: ',a.LastIndexMin+1);
var mx:=a.Max;
Writeln('Количество элементов, равных максимальному: ',
a.Where(x->x=mx).Count)
end.
Пример
n= 20
10 10 -10 2 -8 9 8 -8 4 -5 10 -9 9 -2 1 7 -4 9 -10 7
Последнее вхождение минимального элемента: 19
Количество элементов, равных максимальному: 3
Пояснения
ArrRandom(ReadInteger('n='),-10,10); запрашиваем количество элементов n в массиве, а затем создаем целочисленный массив заполняем его случайными целыми числами на интервала [-10;10]
a.Println; выводим содержимое массива а на монитор
a.LastIndexMin+1 находим в массиве a позицию последнего минимального элемента. Счет позиций идет с нуля, поэтому добавляем единицу.
var mx:=a.Max; находим в массиве а максимальный элемент и запоминаем его в mx
a.Where(x->x=mx).Count) выбираем из массива а элементы, равные mx и подсчитываем их количество