/* You are given an M x N Grid of real numbers. You want to find a path from the top-left corner of the
* Grid (position 0, 0) to the bottom-right corner (position M-1, N-1) such that the sum of the numbers on the
* path is as small as possible. However, you are only allowed to move rightward and downward. Write a function
*
* double MinPathCost(Grid& costs);
*
* That takes in one such Grid and returns the minimum cost of such a path. Note that the resulting cost might
* be negative, since the Grid entries may be negative. Your solution should have the best asymptotic (big-O)
* runtime that you can achieve, so "try all possible paths and take the best" is not a particularly good solution.
* If you're very clever, you can solve this problem in time O(MN).
*
* Note: Dijsktra's Algorithm will not work here; the costs can be negative.
*/