karasu的旅行
题号:NC206268
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

karasu决定旅行,他决定从他偏安一隅的左上角(0,0)前往右下角(m-1,n-1)见见世面。

karasu很急,他希望尽可能快地到达目的地,所以他每次只会向下或者向右走。

karasu很穷,他在旅行途中不能没有钱,一旦他身无分文旅行便要结束,请确保他兜里至少揣着一块钱;每到一处他若不能卖艺挣钱便要在此地花钱。

karasu想知道,为了顺利完成旅行,他最少需要带多少钱出门。

输入描述:

第一行输入两个整数m,n(2<=m,n<=100)代表出发点到目的地的距离。
接下来m行,每行输入n个整数k(-109<=K<=109)代表当地情况:正数表示karasu能在此地卖艺挣钱、负数表示karasu要在此地花钱。

输出描述:

输出一个整数,代表karasu最少需要准备的钱数。
示例1

输入

复制
3 3
-2 -3 3
-5 -10 1
10 30 -5

输出

复制
7

说明

右->右->下->下
这是最省钱的方式,为了保证时时刻刻都有一元钱揣着兜里,karasu最少需要7元。