Самая длинная подпоследовательность в последовательности (Pascal)

Прикладное программирование Программирование на Pascal Самая длинная подпоследовательность в последовательности (Pascal)

Помечено: ,

Просмотр 0 веток ответов
  • Автор
    Сообщения
    • #5588
      @admin

      В последовательности 0 и 1 найти длину самой длинной подпоследовательности 0, индекс ее начала и индекс ее конца. Длина последовательности задана.

      Входные данные: n=10. 0 1 0 0 0 0 1 0 0 0

      Выходные данные: 4 3 6

      program Sequence;
      
      uses
        CRT;
      
      const
        n = 10;
      var
        x: array [1..n] of integer;
        i, max, k, s: integer;
      begin
        ClrScr;
        for i := 1 to n do
          repeat
            write(i, ' ');
            readln(x[i]);
          until (x[i] = 0) or (x[i] = 1){ввод и проверка данных};
        {вывод исходной последовательности}
        for i := 1 to n do
          write(x[i]);
        writeln;
        s := 0;
        max := 0;
        for i := 1 to n do
          if x[i] = 0 then
            Inc(s)
          else if s > max then
          begin
            max := s;
            k := i - 1;
            s := 0;
          end;
      
      {Если самая длинная подпоследовательность
      в конце последовательности}
        if s > max then
        begin
          max := s;
          k := n;
        end;
        {вывод результата}
        writeln(max, ' ', k - max + 1, ' ', k);
        readln;
      end.

Просмотр 0 веток ответов
  • Для ответа в этой теме необходимо авторизоваться.