На Pascal Дан линейный массив из N целых чисел (N=10). Найти и вы- вести самую длинную неубывающую подпоследовательность подряд идущих элементов массива и ее длину. Если таковых несколько, то вывести одну из них. Пример: исходн...

На Pascal Дан линейный массив из N целых чисел (N=10). Найти и вы- вести самую длинную неубывающую подпоследовательность подряд идущих элементов массива и ее длину. Если таковых несколько, то вывести одну из них. Пример: исходный массив 1 2 3 2 3 3 4 3 4 5, ответ 2 3 3 4, длина = 4.
Гость
Ответ(ы) на вопрос:
Гость
const n=10; var    k,l,m,i,j: integer;   var a: array[1..n] of integer; begin   k:=0; m:=0; j:=0; l:=0;   for i:=1 to n do begin     a[i]:=random(10);     write (a[i]:3);     if (i>1) and (a[i]>=a[i-1])        then begin k:=k+1; j:=i; end       else          if (k>0) and (k>l)            then begin l:=k; m:=j; k:=0 end           else k:=0;   end;   if (k>0) and (k>l)      then begin l:=k; m:=n end;    writeln;   writeln;   for i:=m-l to m do      write (a[i]:3);   l:=l+1;   writeln;   writeln ('Длина = ',l) end. -----------результат:-------------   9  2  5  0  8  5  7  7  3  7   5  7  7 Длина = 3 -------------------------------------- * рандомный ввод массива можно заменить обычным с клавиатуры
Не нашли ответ?
Ответить на вопрос
Похожие вопросы