Ctrl/Cmd + P and select "Save as PDF".
Fib(n) if n <= 1 return n return Fib(n-1) + Fib(n-2)
Map memo Fib(n) if n in memo return memo[n] if n <= 1 f = n else f = Fib(n-1) + Fib(n-2) memo[n] = f return f
Cut-Rod(p, n)
if n == 0 return 0
q = -infinity
for i = 1 to n
q = max(q, p[i] + Cut-Rod(p, n-i))
return qlet r[0..n] be new array
r[0] = 0
for j = 1 to n
q = -infinity
for i = 1 to j
q = max(q, p[i] + r[j-i])
r[j] = q
return r[n]let r[0..n], s[0..n] be new arrays
r[0] = 0
for j = 1 to n
q = -infinity
for i = 1 to j
if q < p[i] + r[j-i]
q = p[i] + r[j-i]
s[j] = i // best first cut for size j
r[j] = q
return r, s(r, s) = Extended-Bottom-Up-Cut-Rod(p, n) while n > 0 print s[n] n = n - s[n]