Minmax18. Дано целое число $$N$$ и набор из $$N$$ целых чисел. Найти количество элементов, содержащихся между первым и последним максимальным элементом. Если в наборе имеется единственный максимальный элемент, то вывести $$0$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
program MinMax18; var N,Ni,Max,MaxNum,i,RezNum:Integer; begin Write('N:'); Readln(N); for i:=1 to N do begin Write(i,': '); Readln(Ni); if (Ni>Max) or (i=1) then begin Max:=Ni; MaxNum:=i; RezNum:=0; end else if Ni=Max then begin RezNum:=i-1-MaxNum; end; end; Writeln(RezNum); end. |
Решение от olegst1975:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
program MinMax18; var n,i,k,max,max_n1,max_n2:integer; begin read(n); read(k); max:=k; max_n1:=1; max_n2:=1; for i:=2 to n do begin read(k); if k>max then max_n1:=i; if k>=max then max_n2:=i; if k>max then max:=k; end; if max_n2=max_n1 then write(0) else write(max_n2-max_n1-1); end. |
Другие задачи из раздела Minmax можно посмотреть здесь.
Если максимальное число первое выдает -1. Срабатывает второе сравнение. Ниже чуть подсократил все
[/crayon]
+ мое
[/crayon]
Ваше решение добавил в шапку.
Согласен,
Можно соединить с :
Было:
Стало: