Самая длинная цепочка (2 уровень) |
Условие :Дана вещественная таблица a[1], a[2],...,a[1000]. Определить максимальное количество подряд идущих положительных элементов последовательности, не прерываемых ни нулями, ни отрицательными элементами. Напечатать найденный фрагмент. Решение: Идея решения. Движемся вдоль массива. Фиксируем начало и конец “положительного” фрагмента и запоминаем его длину, индексы первого и последнего элементов. Аналогично поступаем со следующим фрагментом ( если он есть!). Если следующий фрагмент длиннее предыдщего, то помним его начало, конец и длину. Так ( за один проход!) проходим по всему массиву и на финише имеем то, что позволит нам напечатать интересующий нас фрагмент. Комментарии в исходнм тексте позволят до конца уяснить решение. const maxstart:=start; maxstop:=stop; end; end; writeln; if maxstop=0 then writeln('Нет положительных элементов') else begin writeln('Найденa последовательность от ',maxstart, ' до ',maxstop); for i:=maxstart to maxstop do begin write(a[i],' '); end; end; end. |