Podsekwencja to sekwencja, którą można uzyskać z innej sekwencji poprzez usunięcie niektórych elementów bez zmiany kolejności pozostałych elementów. Ściśle rosnąca podsekwencja to podsekwencja, w której każdy element jest większy niż poprzedni.
Najsilniej rosnącym podsekwencją sekwencji jest ściśle rosnąca podsekwencja, która ma największą sumę elementów.
Zaimplementuj program lub funkcję w wybranym języku, który znajdzie sumę pierwiastków o największej rosnącej podsekwencji danej listy liczb całkowitych nieujemnych.
Przykłady:
[] -> 0 ([])
[3] -> 3 ([3])
[3, 2, 1] -> 3 ([3])
[3, 2, 5, 6] -> 14 ([3, 5, 6])
[9, 3, 2, 1, 4] -> 9 ([9])
[3, 4, 1, 4, 1] -> 7 ([3, 4])
[9, 1, 2, 3, 4] -> 10 ([1, 2, 3, 4])
[1, 2, 4, 3, 4] -> 10 ([1, 2, 3, 4])
[9, 1, 2, 3, 4, 5, 10] -> 25 ([1, 2, 3, 4, 5, 10])
[3, 2, 1, 2, 3] -> 6 ([1, 2, 3])
Zauważ, że musisz podać sumę pierwiastków o największej narastającej podsekwencji, a nie samą podsekwencję.
Wygrywa asymptotycznie najszybszy kod, z mniejszym rozmiarem kodu w bajtach jako rozstrzygającym.