Podciągi
Podciąg to wybrane element ciągu wyjściowego np.: liczby 3, 2, 5, 7 tworzą podciąg ciągu 3, 1, 2, 5, 7, 4.
Jeśli elementy podciągu wystepują w ciągu wyjściowym obok siebie to taki podciąg nazywamy podciągiem spójnym.
Na przykład ciąg 1,2,5 jest podciągiem spójnym ciągu 3,1,2,5,7,4
Najdłuższy spójny podciąg niemajejący
W podciągu niemalejącym każdy kolejny element jest wiekszy lub równy poprzedniemu. Na przykąłd w ciągu: 3,1,2,5,7,4 możem wyróżnić następujace spójne podciągi niemalejące:
1,2
1,2,5
1,2,5,7
2,5
2,5,7
5,7
Specyfikacja
Dane:
A[0..n-1] - tablica n liczb całkowitych
Wynik
maks_dl - długość najdłuższego spójnego podciągu niemalejacego w tablicy A.
Lista kroków algorytmu:
Krok 0. |
Wczytaj wyrazy ciągu do tablicy A[] |
Krok 1. |
Przypisz maks_dl = 1 |
Krok 2. |
Przypisz akt_dl=1 |
Krok 3. |
Dla i=1,2,..., n-1 wykonuj krok 4 |
Krok 4. |
Jeśli A[i] >= A[i-1] to akt_dl=akt_dl+1, jeśli akt_dl > maks_dl to maks_dl = akt_dl i przejdź do kroku 3, w przeciwnym przypadku akt_dl = 1 przejdź do kroku 3 |
Krok 5. |
Wypisz maks_dl i zakończ algorytm |
Ćwiczenia
1. Napisz program wypisujący długość najdłuższego spójnego podciągu niemalejacego
2. Napisz program wypisujacy najdłuższy spójny podciąg niemalejący.
3. Napisz program znajdujący najwiekszą sume podciągu spójnego. wypisz ten podciąg.
4. Napisz program wypisujacy z ciągu n-licz całkowu=itych wszystkie podciągi spójne o podanej (wczytanej) sumie.
Zadanie
Napisz program, który wypisze najdłuższy spójny rosnący ciąg liczb całkowitych. Jeśli takich ciągów jest kilka, program powinien wypisać pierwszy.
Dane wejściowe
W pierwszym wierszu jedna liczba n określająca ilość liczb w ciągu (n mniejsze od 1000000) .
W drugim wierszu n liczb całkowitych z przedziału [0..1000].
Dane wyjściowe
Szukany ciąg liczb.
Przykład
Wejście
10
1 2 3 3 2 4 5 7 0 9
Wyjście
2 4 5 7
Wróć do spisu tematów