BAPC training 2019 week 5: Dynamic Programming