paysmile 2019. 1. 18. 00:39

#include<iostream>

#include<cstring>

#include<algorithm>

using namespace std;


const int MAX = 1001;


int n, m;

int candy[MAX][MAX];

int ans[MAX][MAX];


int calcandynum() {


for (int i = 1; i <= n; i++) {

for (int j = 1; j <= m; j++) {

ans[i][j] = candy[i][j] + max(ans[i - 1][j],max(ans[i][j - 1], ans[i - 1][j - 1]));

}

}

return ans[n][m];

}


int main(void) {

cin >> n >> m;


memset(candy, 0, sizeof(candy));

memset(ans, 0, sizeof(ans));

for (int i = 1; i <= n; i++) {

for (int j = 1; j <= m; j++) {

cin >> candy[i][j];

ans[i][j] = candy[i][j];

}

}

cout << calcandynum() << endl;

}