I've solved this very problem without reading the answer. If you understand dynamic programming, this is simply testing your skills in it (although I'd agree it may be too much for a short session).
Sure, but usually the problem is decorated in a few layers of bullshit to hide what the true problem is. I remember the core, actual problem, but that wasn't what got presented. So take off another 5 to 10 minutes cutting through that.