Составить программу в паскаль: Найти подпоследовательность максимальной длины подряд...

0 голосов
26 просмотров

Составить программу в паскаль: Найти подпоследовательность максимальной длины подряд идущих чисел массива равных между собой


Информатика (145 баллов) | 26 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Const
   N = 33;
Var
   A:array[1..N] of integer;
   i,k,M,d:integer;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
    Begin
    A[i]:=random(N div 10+1);
    Write(' ',A[i])
    End;
WriteLn;
k:=1;
d:=0;
For i:=1 to N-1 do
    if (A[i]=A[i+1]) then k:=k+1
    else
       Begin
       if k>d then
          Begin
          d:=k;
          M:=i;
          End;
       k:=1;
       End;
if d>1 then WriteLn('Искомая последовательность начинается с элемента №',M-d+1,', и заканчивается элементом №',M,'')
else if d>0 then WriteLn('В массиве нет, стоящих рядом, равных чисел')
     else WriteLn('Все числа в последовательности равны');
End.

Пример:
Исходный массив: 1 1 1 1 1 2 2 1 3 2 0 3 1 3 0 3 3 0 0 1 3 1 1 2 3 0 1 1 2 2 1 0 0
Искомая последовательность начинается с элемента №1, и заканчивается элементом №5

(34.0k баллов)
0

Огромное спасибо!!!!!!!!!