Cho dãy số gồm N phần tử A1, A2, …, AN (1 <= n <= 106). Hãy tìm một đoạn con tăng liên tiếp dài nhất. Input: - Dòng đầu tiên nhập số N - Dòng tiếp t

Cho dãy số gồm N phần tử A1, A2, …, AN (1 <= n <= 106). Hãy tìm một đoạn con tăng liên tiếp dài nhất. Input: - Dòng đầu tiên nhập số N - Dòng tiếp theo nhập các số A1, A2, …, AN Output: - Một số duy nhất là độ dài đoạn con tăng liên tiếp dài nhất Ví dụ Input Output 5 6 67 8 48 88 3

0 bình luận về “Cho dãy số gồm N phần tử A1, A2, …, AN (1 <= n <= 106). Hãy tìm một đoạn con tăng liên tiếp dài nhất. Input: - Dòng đầu tiên nhập số N - Dòng tiếp t”

  1. Const Fi=’Daycon.INP’;
          Fo=’Daycon.OUT’;
    Var f,g: text;
        A: array[1..1000] of longint;
        i,j,max,d,n: longint;

    Begin
            Assign(f,fi); Reset(f);
            Assign(g,fo); Rewrite(g);
            readln(f,n);

            For i:=1 to n do Read(f,A[i]);
            max:=0;
            i:=1;
            While i <= n  do
            Begin
                    j:=i;
                    d:=1;

            While (A[j]<A[j+1]) and (j<=n) do
            Begin
                    inc(d);
                    inc(j);
            End;
            If d> max then
                    max:=d;

            i:=j+1;
            End;
            Write(g,max);
            Close(f);
            Close(g);
    End.

    Bình luận
  2. Code:

    uses crt;

    var a:array[1..106] of longint;

    i,n,tam,dem,max,dau,cuoi:longint;

    begin

    write(‘nhap n: ‘);readln(n);

    for i:=1 to n do

    begin

    write(‘a[‘,i,’]= ‘);readln(a[i]);

    end;

    max:=0;

    for i:=1 to n do

    begin

    dem:=0; tam:=i;

    while (a[tam]<=a[tam+1]) and (tam<=n) do 

    begin

    dem:=dem+1;

    inc(tam);

    end;

    if dem>max then 

    begin

    max:=dem;

    dau:=i;

    cuoi:=tam;

    end;

    end;

    write(‘day con tang lien tiep dai nhat la: ‘);

    for i:=dau to cuoi do write(a[i]:4);

    readln

    end.

    Bình luận

Viết một bình luận