namespace Algorthimica.DP
int[,] outputGrid = new int[5, 4];
internal int Execute(int row, int col, int currentMax)
currentMax = currentMax + Math.Max(Execute(row - 1, col, currentMax), Execute(row, col - 1, currentMax)) + inputGrid[row, col];
outputGrid[row, col] = currentMax;
int sum = this.Execute(4, 3, 0);
Console.WriteLine("Max Coins : " + sum);
for (int i = 0; i < 5; i++)
for (int j = 0; j < 4; j++)
Console.Write(outputGrid[i,j]+" ");
Console.WriteLine("No of calls for caluculating the optimum path " +globalCount);
public class MaxCoinsTest
public static void Main(string[] args)
MaxCoins num = new MaxCoins();