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.