#include <bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
int path_sum(int grid[100][100], int row, int col, int ROWS, int COLS) {
if (row == ROWS - 1 && col == COLS - 1) return grid[row][col];
int max_val = 0;
int next_row = row, next_col = col;
// Check all 3 possible directions
if (row + 1 < ROWS && grid[row + 1][col] > max_val) {
max_val = grid[row + 1][col];
next_row = row + 1;
next_col = col;
}
if (col + 1 < COLS && grid[row][col + 1] > max_val) {
max_val = grid[row][col + 1];
next_row = row;
next_col = col + 1;
}
if (row + 1 < ROWS && col + 1 < COLS && grid[row + 1][col + 1] > max_val) {
max_val = grid[row + 1][col + 1];
next_row = row + 1;
next_col = col + 1;
}
return grid[row][col] + path_sum(grid, next_row, next_col, ROWS, COLS);
}
void solve() {
int r = 3,c=3;
int grid[100][100] = {{1,7,8},{2,10,11},{20,5,9}};
cout << path_sum(grid,0,0,r,c);
}
int main() {
IOS;
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgSU9TIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBwYXRoX3N1bShpbnQgZ3JpZFsxMDBdWzEwMF0sIGludCByb3csIGludCBjb2wsIGludCBST1dTLCBpbnQgQ09MUykgewogICAgaWYgKHJvdyA9PSBST1dTIC0gMSAmJiBjb2wgPT0gQ09MUyAtIDEpIHJldHVybiBncmlkW3Jvd11bY29sXTsKCiAgICBpbnQgbWF4X3ZhbCA9IDA7CiAgICBpbnQgbmV4dF9yb3cgPSByb3csIG5leHRfY29sID0gY29sOwoKICAgIC8vIENoZWNrIGFsbCAzIHBvc3NpYmxlIGRpcmVjdGlvbnMKICAgIGlmIChyb3cgKyAxIDwgUk9XUyAmJiBncmlkW3JvdyArIDFdW2NvbF0gPiBtYXhfdmFsKSB7CiAgICAgICAgbWF4X3ZhbCA9IGdyaWRbcm93ICsgMV1bY29sXTsKICAgICAgICBuZXh0X3JvdyA9IHJvdyArIDE7CiAgICAgICAgbmV4dF9jb2wgPSBjb2w7CiAgICB9CiAgICBpZiAoY29sICsgMSA8IENPTFMgJiYgZ3JpZFtyb3ddW2NvbCArIDFdID4gbWF4X3ZhbCkgewogICAgICAgIG1heF92YWwgPSBncmlkW3Jvd11bY29sICsgMV07CiAgICAgICAgbmV4dF9yb3cgPSByb3c7CiAgICAgICAgbmV4dF9jb2wgPSBjb2wgKyAxOwogICAgfQogICAgaWYgKHJvdyArIDEgPCBST1dTICYmIGNvbCArIDEgPCBDT0xTICYmIGdyaWRbcm93ICsgMV1bY29sICsgMV0gPiBtYXhfdmFsKSB7CiAgICAgICAgbWF4X3ZhbCA9IGdyaWRbcm93ICsgMV1bY29sICsgMV07CiAgICAgICAgbmV4dF9yb3cgPSByb3cgKyAxOwogICAgICAgIG5leHRfY29sID0gY29sICsgMTsKICAgIH0KCiAgICByZXR1cm4gZ3JpZFtyb3ddW2NvbF0gKyBwYXRoX3N1bShncmlkLCBuZXh0X3JvdywgbmV4dF9jb2wsIFJPV1MsIENPTFMpOwp9CnZvaWQgc29sdmUoKSB7CiAgIGludCByID0gMyxjPTM7CiAgICBpbnQgZ3JpZFsxMDBdWzEwMF0gPSB7ezEsNyw4fSx7MiwxMCwxMX0sezIwLDUsOX19OwogICAgY291dCA8PCBwYXRoX3N1bShncmlkLDAsMCxyLGMpOwp9CgppbnQgbWFpbigpIHsKICAgIElPUzsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==