Skip to content

Commit 59f9b9e

Browse files
authored
Merge pull request #433 from Aashu23/master
Gold mine problem
2 parents a119d1d + 6a23440 commit 59f9b9e

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

GoldMineProblem.cpp

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include<bits/stdc++.h>
2+
using namespace std;
3+
4+
const int MAX = 100;
5+
6+
int getMaxGold(int gold[][MAX], int m, int n)
7+
{
8+
9+
int goldTable[m][n];
10+
memset(goldTable, 0, sizeof(goldTable));
11+
12+
for (int col=n-1; col>=0; col--)
13+
{
14+
for (int row=0; row<m; row++)
15+
{
16+
17+
int right = (col==n-1)? 0: goldTable[row][col+1];
18+
19+
20+
int right_up = (row==0 || col==n-1)? 0:
21+
goldTable[row-1][col+1];
22+
23+
24+
int right_down = (row==m-1 || col==n-1)? 0:
25+
goldTable[row+1][col+1];
26+
27+
28+
goldTable[row][col] = gold[row][col] +
29+
max(right, max(right_up, right_down));
30+
31+
}
32+
}
33+
34+
int res = goldTable[0][0];
35+
for (int i=1; i<m; i++)
36+
res = max(res, goldTable[i][0]);
37+
return res;
38+
}
39+
40+
41+
int main()
42+
{
43+
int gold[MAX][MAX]= { {1, 3, 1, 5},
44+
{2, 2, 4, 1},
45+
{5, 0, 2, 3},
46+
{0, 6, 1, 2}
47+
};
48+
int m = 4, n = 4;
49+
cout << getMaxGold(gold, m, n);
50+
return 0;
51+
}

0 commit comments

Comments
 (0)