C++ DP solution

I got the idea from dietpepsi's post, but had a hard time to understand the usage of "nums[left] * nums[i] * nums[right]" in his implementation. So I changed the definition of dp state a little bit, which I can understand better. In following code, dp[start][end] is defined as the maximum coins we can get by bursting balloons between "start" and "end" (exclusively, means "start" and "end" won't burst).