Dany jest ciąg \(\displaystyle{ n}\), \(\displaystyle{ n<20}\), liczb całkowitych wylosowanych z przedziału \(\displaystyle{ [a, b]}\), gdzie \(\displaystyle{ a, b <100}\) i \(\displaystyle{ a<b}\). Napisz program, który wypisze długość (liczbę wyrazów) najdłuższego podciągu niemalejącego w tym ciągu. Rozważamy tylko podciągi spójne - liczby podciągu powinny stać w ciągu wylosowanych liczb obok siebie.
Potrzebuje kod do powyzszego programu. Pomoże ktoś?
[Pascal] Najdłuższy spójny podciąg niemalejący
[Pascal] Najdłuższy spójny podciąg niemalejący
Ostatnio zmieniony 27 sty 2015, o 20:09 przez Afish, łącznie zmieniany 1 raz.
Powód: Całe wyrażenia matematyczne umieszczaj w tagach[latex] [/latex] .
Powód: Całe wyrażenia matematyczne umieszczaj w tagach
-
- Użytkownik
- Posty: 939
- Rejestracja: 26 gru 2009, o 17:38
- Płeć: Mężczyzna
- Lokalizacja: Mazowsze
- Podziękował: 5 razy
- Pomógł: 228 razy
[Pascal] Najdłuższy spójny podciąg niemalejący
Kod: Zaznacz cały
program podciag;
const nmax = 20;
const ciag : array[1..nmax] of integer = (1,2,3,6,33,2,1,1,13,14,15,19,21,21,22,22,20,2,3,4);
var L1 : integer;
var L2 : integer;
var i : integer;
begin
L1 := 1;
L2 := 1;
for i:=2 to nmax do
begin
if ciag[i] < ciag[i-1] then L1 := 1
else
begin
L1 := L1+1;
if L2 < L1 then L2 := L1;
end;
end;
writeln('Najdluzszy podciag niemalejacy ma dlugosc ',L2);
end.