Послідовність - це послідовність, яка може бути отримана з іншої послідовності, видаливши деякі елементи, не змінюючи порядок решти елементів. Суворо зростаюча підпорядкованість - це послідовність, у якій кожен елемент більший за попередній.
Найбільш важкою послідовністю зростаючої послідовності є суттєво зростаюча послідовність, яка має найбільшу суму елементів.
Реалізуйте програму або функцію на обраній вами мові, яка знаходить суму елементів найбільш важкого зростаючого підпорядкування даного списку невід’ємних цілих чисел.
Приклади:
[] -> 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])
Зауважте, що ви повинні надати лише елементну суму найбільш важкої зростаючої послідовності, а не саму підпорядкованість.
Асимптотично найшвидший код виграє, з меншим розміром коду в байтах як перемикач.