PascalABC Вводится последовательность целых чисел, не превосходящих по модулю 10000. Ноль - признак конца. Вывести, сколько раз в этой последовательности встречается максимальный элемент.
function MaxCnt(Self:sequence of integer):integer; extensionmethod; begin var (max,k):=(integer.MinValue,1); foreach var v in Self do if v>max then (max,k):=(v,1) else if v=max then k+=1; Result:=k end;
begin ReadSeqIntegerWhile(t->t<>0).MaxCnt.Println; end.
Answers & Comments
//Версия 3.3, сборка 1634 (14.02.2018)
function MaxCnt(Self:sequence of integer):integer; extensionmethod;
begin
var (max,k):=(integer.MinValue,1);
foreach var v in Self do
if v>max then (max,k):=(v,1)
else if v=max then k+=1;
Result:=k
end;
begin
ReadSeqIntegerWhile(t->t<>0).MaxCnt.Println;
end.
Пример:
12 15 61 8 7 8 20 20 5 51 54 61 30 61 0 78 94 94 94 94 94
3