public long minPathProduct (int[][] cows) { // write code here int m=cows.length; int n=cows[0].length; long[][] dp=new long[m+1][n+1]; dp[0][0]=1; dp[0][1]=1; dp[1][0]=1; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(i==1) dp[i][j]=dp[i][j-1]*cows[i-1][j-1]; else if(j==1) dp[i][j]=dp[i-1][j]*cows[i-1][j-1]; else{ dp[i][j]=Math.min(dp[i-1][j],dp[i][j-1])*cows[i-1][j-1]; } } } return dp[m][n]; }