Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Recursive(i,prev_selection,remaining_selections):
- if remaining_selections<=0 or i>n:
- return 0
- if computed[i,prev_selection,remaining_selections] != EMPTY:
- return computed[i,prev_selection,remaining_selections]
- if previous_selection == Plus:
- GoesToMinus = Recursive(i+1,Minus,remaining_selections) - value[i]
- IsNotSelected = Recursive(i+1,Plus,remaining_selections)
- computed[i,prev_selection,remaining_selections] = max(GoesToMinus,IsNotSelected)
- return computed[i,prev_selection,remaining_selections]
- else if previous_selection == Minus:
- GoesToPlus = Recursive(i+1,Plus,remaining_selections-1) + value[i]
- //Selections are only decreased when selecting a Plus
- //Remember that Minus is always selected first
- IsNotSelected = Recursive(i+1,Minus,remaining_selections)
- computed[i,prev_selection,remaining_selections] = max(GoesToPlus,IsNotSelected)
- return computed[i,prev_selection,remaining_selections]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement