Assignment 4: Dynamic Programming (DP)