D
dynamic programming