YangHao 2017-09-09 23:53:29
点我顶贴
收藏
删除
while(scanf("%d",&n)!=EOF)
{
memset(a,0,sizeof(a));
while(1)
{
scanf("%d%d%d",&r,&c,&v);
if(!r&&!c&&!v) break;
a[r][c]=v;
}
memset(f,0,sizeof(f));
for(int k=1;k<=2*n;k++)
for(int i=1;i<=k;i++)
for(int j=1;j<=k;j++)
{
int tmp=-2147483646;
tmp=max(tmp,f[k-1][i-1][j-1]);
tmp=max(tmp,f[k-1][i-1][j]);
tmp=max(tmp,f[k-1][i][j-1]);
tmp=max(tmp,f[k-1][i][j]);
if(i==j) f[k][i][j]=tmp+a[k-i+1][i];
else f[k][i][j]=tmp+a[k-i+1][i]+a[k-j+1][j];
}
printf("%d\n",f[2*n][n][n]);
}