5
void gold(int i, int j, vector<vector<int>> &grid, vector<vector<int>> &vis, int count) {7
if (i + 1 < m && !vis[i + 1][j] && grid[i + 1][j]) {9
gold(i + 1, j, grid, vis, count + grid[i + 1][j]);13
if (j - 1 >= 0 && !vis[i][j - 1] && grid[i][j - 1]) {15
gold(i, j - 1, grid, vis, count + grid[i][j - 1]);19
if (j + 1 < n && !vis[i][j + 1] && grid[i][j + 1]) {21
gold(i, j + 1, grid, vis, count + grid[i][j + 1]);25
if (i - 1 >= 0 && !vis[i - 1][j] && grid[i - 1][j]) {27
gold(i - 1, j, grid, vis, count + grid[i - 1][j]);30
maxgold = max(maxgold, count);33
int getMaximumGold(vector<vector<int>> &grid) {36
for (int i = 0; i < m; i++) {37
for (int j = 0; j < n; j++) {39
vector<vector<int>> vis(m, vector<int>(n, 0));40
gold(i, j, grid, vis, grid[i][j]);