3 programming problems. Dynamic programming.