Najdłuższy Podciąg Rosnący
Transkrypt
Najdłuższy Podciąg Rosnący
Najdłuższy Podciąg Rosnący Ciąg liczb a1, . . . , an jest rosnący jeżeli ai < ai+1 dla każdego i. Ciąg b1, . . . , bm jest podciągiem ciągu a1, . . . , an jeżeli istnieje rosnący ciąg indeksów i1, . . . , im taki ze: ai1 = b1, ..., aim = bm. Dla zadanego ciągu a należy skonstruować jego najdłuższy rosnący podciąg b. Wejście Pierwsza linia wejścia zawiera liczbę całkowitą z – liczbę zestawów danych, których opisy występują kolejno po sobie. Opis jednego zestawu jest następujący: W pierwszym wierszu zestawu danych znajduje sie liczba n, 1 6 n 6 500000. W drugim wierszu znajdują się kolejne wyrazy ciągu a1, . . . , an. Wyrazy ciągu są liczbami całkowitymi. Wyjście Dla każdego zestawu danych wejściowych należy wypisać dwa wiersze: w pierwszym długość maksymalnego podciągu rosnącego m, w drugim rosnący ciąg indeksów i1, . . . , im taki ze: ai1 , ..., aim jest ciągiem rosnącym. Jeżeli istnieje więcej niż jeden maksymalny względem długości podciąg rosnący, należy wybrać dowolny z nich. Dostępna pamięć: 20MB Przykład Dla danych wejściowych: 1 5 14324 Poprawna odpowiedzią jest: 3 145