Swust oj 1132: Coin-collecting by robot

#include <iostream>
#include <algorithm>
#include <string.h>         //for memset

//原始数据数组
int data[1001][1001];

int main()
{
    //数据及初始化
    int m, n;
    memset(data, 0, sizeof(data));

    //输入
    std::cin >> m >> n;
    for (int i(1); i <= m; ++i)
    {
        for (int j(1); j <= n; ++j)
        {
            std::cin >> data[i][j];
        }
    }

    //查找最优解
    for (int i(1); i <= m; ++i)
    {
        for (int j(1); j <= n; ++j)
        {
            data[i][j] = std::max(data[i - 1][j], data[i][j - 1])
                + data[i][j];
        }
    }

    std::cout << data[m][n] << std::endl;

    return 0;
}