#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <cstdlib>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <vector>
#include <list>
#include <stack>
#include <limits>
#include <deque>
#include <algorithm>
#include <functional>
using namespace std;
#define PF(x) (scanf("%d",&x))
#define PT(x,y) (scanf("%d%d",&x,&y))
#define PB(x) (scanf("%I64d",&x))
#define PR(x) (printf("%d\n",(x)))
#define PRB(x) (printf("I64d\n",(x)))
#define PRT(x,y) (scanf("%d %d\n",(x),(y))
#define Min(x,y) ( (x)>(y)?(y):(x) )
#define Max(x,y) ( (x)>(y)?(x):(y) )
#define PE(x) while(scanf("%d",&x)!=EOF)
#define L(x) x<<1
#define Mid(x,y) ( (x) + (y) ) >>1
#define R(x) ((x)<<1 |1 )
#define For(i,n) for(int i=0;i<n;i++)
#define RFor(i,s,n) for(int i=s;i<=n;i++)
#define N 105
#define M 100
#define Mod 1000
#define Inf 0x7fffffff
#define inf 0x3f3f3f3f
typedef __int64 LL;
int Maxs(int a,int b)
{
return a>b?a:b;
}
int n,m;
int maps[N][N];
int dist[N][N];
void init()
{
while(true)
{
PT(n,m);
if(n == 0 && m == 0) break;
memset(maps,0,sizeof maps);
RFor(i,1,n)
RFor(j,1,m) PF(maps[i][j]);
memset(dist,0,sizeof(dist));
RFor(i,1,n)
RFor(j,1,m)
{
dist[i][j] = maps[i][j];
For(k,j)
{
dist[i][j] = Maxs(dist[i][j],dist[i-1][j-k] + maps[i][k]);
}
}
PR(dist[n][m]);
}
}
int main()
{
init();
return 0;
}
hdu 1712
最新推荐文章于 2021-08-20 15:22:56 发布