input: from typing import List
  
  
  def recursive_sol(problem: List[int]) -> List[int]:
      """
      Given a problem, solve it using recursion. The problem is broken down into smaller subproblems,
      each solved recursively, until the base case is reached. The solutions to the subproblems are
      then combined to solve the original problem. 
      >>> recursive_sol([1, 2, 3, 4, 5])
      [1, 3, 6, 10, 15]
      >>> recursive_sol([5, 4, 3, 2, 1])
      [5, 9, 12, 14, 15]
      """
output:     if len(problem) == 1:
          return problem
      else:
          first_element = problem[0]
          rest_elements = problem[1:]
          rest_solution = recursive_sol(rest_elements)
          return [first_element] + [first_element + x for x in rest_solution]