Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, завершающейся числом 0. если в последовательности нет двух локальных максимумов, выведите число 0. начальное и конечное значение при этом локальными максимумами не считаются. pascal или python
Программа (язык Pascal ABC.Net)
var i1,i2,i3:integer;
i:integer;
curr,minr,lastmax:integer;
begin
readln(i1,i2);
i:=2;
minr:=1000000;
repeat
readln(i3);
if (i2>i1) and (i2>i3) and (i3<>0) then begin
curr:=i-lastmax;
if curr<minr then minr:=curr;
lastmax:=i;
end;
i1:=i2;
i2:=i3;
i+=1;
until i2=0;
if minr=1000000 then writeln(0) else writeln(minr); {стоило бы добавить булевую переменную в качестве флага - был ли хоть один max, но вряд ли расстояние между ними превысит миллион :-}
end.