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

2 câu trả lời

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.

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.

Câu hỏi trong lớp Xem thêm