Помогите понять код

1482909

Новичок
Есть рабочий код:
Cut-Rod(p, n)
if n == 0
return 0
q = -∞
for i = 1 to n
q = max(q, p + Cut-Rod(p, n - i)
return q

где p[1,5,8,9,10,17,17,20,24,30], a n = 4

В моем понимание, после того как сработал базовый случай, Cut-Rod возратила 0, тогда в цикле:
1 = max(-∞, 1 + 0)
5 = max(1, 5 + 0)
8 = max(5, 8 + 0)
9 = max(8, 9 + 0)
цикл завершился, Cut-Rod возвратила 9, программа попадает в предыдущие состояние , тогда в цикле:
10 = max(-∞, 1 + 9)
14 = max(10, 5 + 9)
17 = max(14, 8 + 9)
18 = max(17, 9 + 9)
и так далее, по аналогии.

Где в моем понимание ошибка?
 
Сверху