记录编号 27875 评测结果 REWWWWWWWR
题目名称 [NOIP 2008]传纸条 最终得分 0
用户昵称 GravatarYeehok 是否通过 未通过
代码语言 C++ 运行时间 0.051 s
提交时间 2011-10-09 20:47:36 内存使用 1.15 MiB
显示代码纯文本
#include<fstream>   
using namespace std;   
ifstream fin("message.in");   
ofstream fout("message.out");   
int map[51][51],ans[101][51][51];   
int Max(int a,int b)   
{   
    return (a>=b ? a:b);   
}   
int Min(int a,int b)   
{   
    return (a<=b ? a:b);   
}   
int main(void)   
{   
    int m,n,i,j,k;   
    fin>>m>>n;   
    for(i=1;i<=m;i++)   
        for(j=1;j<=n;j++)   
            fin>>map[i][j];   
    int total=m+n-2,y1,y2,t;   
    for(i=1;i<=total;i++)   
    {   
        t=Min(total,i);   
        for(j=1;j<=t;j++)   
        {   
            y1=i-j+1;   
            for(k=j+1;k<=t;k++)   
            {   
                y2=i-k+1;   
                ans[i][j][k]=Max(ans[i][j][k],ans[i-1][j-1][k-1]);   
                ans[i][j][k]=Max(ans[i][j][k],ans[i-1][j][k-1]);   
                ans[i][j][k]=Max(ans[i][j][k],ans[i-1][j-1][k]);   
                ans[i][j][k]=Max(ans[i][j][k],ans[i-1][j][k]);   
                ans[i][j][k]+=map[j][y1]+map[k][y2];   
            }   
        }   
    }   
    fout<<ans[m+n-2][m-1][m]<<endl;   
    return 0;   
}