LearnToCP
Prijavi se
Navigacija
PočetnaRoad-mapaProblemiO Nama
Teorija
Takmičarsko Znanje
Izbor Radnog Okruženja (IDE)Interaktivni ZadaciOutput-only Zadaci
Osnove
Tvoj Prvi ProgramTipovi podataka, Unos i IzlazC++ sintaksaModuloFunkcijeVektoriMatriceVremenska Složenost Algoritma
Sortiranje
SortiranjeSortiranje PrebrojavanjemRadix Sort
Tehnike Optimizacije
Dva PokazivačaZbir brojeva od 1 do nZbir PrefiksaBinarna PretragaPohlepni AlgoritmiFunkcije Binarne PretrageBinarna Pretraga po RešenjuPodeli, pa Vladaj
Binarni Brojevi
Binarni BrojeviBrojevi u koduOperacije nad BitovimaBitmaske
Matematika
Binarno StepenovanjeProsti BrojeviRastavljanje na proste činioceNZD i NZSEratostenovo SitoModifikovano Sito
Strukture Podataka
Niske (Stringovi)StekRedMapeSkupovi (Set)Red sa PrioritetomKorišćenje Proizvoljnih KriterijumaSegmentna StablaFenvikova StablaSparse TabeleDisjunktni SkupoviSqrt Dekompozicija
Kombinatorika
Pravilo SabiranjaPravilo MnoženjaKombinatorni ObjektiPrincip Uključenja Isključenja
Geometrija
Osnove GeometrijeVektoriVektorski i Skalarni ProizvodLinijePoligoniUgloviTačka u PoligonuRastojanja i Tačke PresekaKonveksni OmotačKrugovi
Rekurzija
PokazivačiRekurzijaGenerisanje Kombinatornih Objekata
Dinamičko Programiranje
O DP-uDP problemiDP nad StablimaDP nad Bitmaskama
Teorija Grafova
GrafoviDFS i BFSNajkraći PuteviStablaTopološko SortiranjeDajkstrin AlgoritamMinimalna Razapinjuća StablaAlgoritmi Najkraćih Puteva
Napredna Teorija Grafova
Dvostruka PovezanostJako Povezane KomponenteBipartitni GrafMaksimalni Protok u GrafuFord-Fulkersonov AlgoritamDualnost Protoka i Minimalnog PresekaTeško-Laka DekompozicijaCentroidna Dekompozicija
Napredne Strukture Podataka
2D i 3D Segmentna StablaLenjo PropagiranjeImplicitna Segmentna StablaPerzistentna Segmentna StablaNajbliži Zajednički PredakTrieBalansirana Binarna Stabla PretrageMoov Algoritam

Najduži rastući podniz (LIS)

EasyProblem #6
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

Pored nalaženja najbolje vrednosti, ovaj zadatak traži i rekonstrukciju rešenja - veoma korisna DP veština.

Za dati niz brojeva pronađi najduži podniz (elementi ne moraju biti jedan pored drugog) takav da su brojevi strogo rastući.

Pošto može postojati više takvih podnizova iste (najveće) dužine, ispiši leksikografski najmanji.

Niz x je leksikografski manji od niza y iste dužine ako na prvoj poziciji na kojoj se razlikuju x ima manji element.

Ulaz

U prvom redu nalazi se jedan broj n, dužina niza.
U narednom redu nalazi se n brojeva a1​,a2​,…,an​.

Izlaz

U prvom redu jedan broj k - dužina najdužeg strogo rastućeg podniza.
U drugom redu k brojeva - leksikografski najmanji najduži strogo rastući podniz.

Primer

Input
8
3 6 1 2 8 2 4 5
Output
4
1 2 4 5

Najduži strogo rastući podniz ima 4 elementa, a jedini te dužine je 1,2,4,5.

Ograničenja

1≤n≤1000
1≤ai​≤109

Pošalji svoje rešenje

Prijavi se da pošalješ rešenje i pratiš svoj napredak.

Prijavi se