BAPC training week 9: dynamic programming I