#P1229. 【挑战题】传纸条

【挑战题】传纸条

题目描述

禾木和桃子最近总是有谈不完的话题。一次活动中,班上同学安排坐成一个 n 行 m 列的矩阵,而禾木和桃子被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,禾木坐在矩阵的左上角,坐标(1,1),桃子坐在矩阵的右下角,坐标(n, m)。从禾木传到桃子的纸条只可以向下或者向右传递,从桃子传给禾木的纸条只可以向上或者向左传递。

在活动进行中,禾木希望给桃子传递一张纸条,同时希望桃子给他回复。班里每个同学都可以帮他们传递,但只会帮他们一次,也就是说如果此人在禾木递给桃子纸条的时候帮忙,那么在桃子递给禾木的时候就不会再帮忙。反之亦然。

还有一件事情需要注意,全班每个同学愿意帮忙的好感度有高有低(注意:禾木和桃子的好心程度没有定义,输入时用0表示),可以用一个0-100的自然数来表示,数越大表示越好心。禾木和桃子希望尽可能找好心程度高的同学来帮忙传纸条,即找到来回两条传递路径,使得这两条路径上同学的好心程度只和最大。现在,请你帮助禾木和桃子找到这样的两条路径。

输入格式

第 1 行包含两个正整数 n,m,表示矩阵为 n 行,m列。

第 2 行到第 n + 1 行,每行包含 m 个整数 a[i][j],表示每坐在第 i 行 j 列的学生的好心程度。

输出格式

1行,包含一个整数,表示来回两条路上参与传递纸条的学生的好心程度之和的最大值。

样例1

3 3
0 3 9
2 8 5
5 7 0
34

样例2

3 4 
20 15 20 50 
10 15 40 40 
5 5 10 15
200

数据范围

1 ≤ n,m ≤ 50; 1 ≤ a[i][j] ≤ 10000。