CF213C Relay Race

题目描述

Furik 和 Rubik 参加了一场接力赛。比赛在一个边长为 $n$ 米的大正方形场地上进行。这个正方形被分成了 $n \times n$ 个格子(每个格子为一个单位正方形),每个格子上写有一个数字。 比赛开始时,Furik 站在坐标为 $(1,1)$ 的格子上,Rubik 站在坐标为 $(n,n)$ 的格子上。比赛开始后,Furik 向 Rubik 跑去。如果 Furik 站在坐标为 $(i,j)$ 的格子上,他可以移动到 $(i+1,j)$ 或 $(i,j+1)$ 的格子上。当 Furik 到达 Rubik 所在格子后,Rubik 从 $(n,n)$ 开始跑向 $(1,1)$。如果 Rubik 站在 $(i,j)$,他可以移动到 $(i-1,j)$ 或 $(i,j-1)$。两人都不能走出场地边界,否则会被取消资格。 为了赢得比赛,Furik 和 Rubik 需要获得尽可能多的分数。分数是他们经过的所有格子上的数字之和。每个格子的数字在总和中只计算一次。 请输出 Furik 和 Rubik 在这场接力赛中能获得的最大分数。

输入格式

第一行包含一个整数 $n$,表示正方形的边长,$1 \leq n \leq 300$。接下来的 $n$ 行,每行包含 $n$ 个整数,第 $i$ 行第 $j$ 个数 $a_{i,j}$ 表示坐标为 $(i,j)$ 的格子上的数字,$-1000 \leq a_{i,j} \leq 1000$。

输出格式

输出一行一个整数,表示 Furik 和 Rubik 能获得的最大分数。

说明/提示

对第二个样例的说明:Furik 最优的路径是 $(1,1)$,$(1,2)$,$(2,2)$,Rubik 的路径是 $(2,2)$,$(2,1)$,$(1,1)$。 对第三个样例的说明:Furik 的最优路径是 $(1,1)$,$(1,2)$,$(1,3)$,$(2,3)$,$(3,3)$,Rubik 的路径是 $(3,3)$,$(3,2)$,$(2,2)$,$(2,1)$,$(1,1)$。如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF213C/a92c8e717fa04d02a17d26f350f073f77ae6ad03.png) 黄色表示 Furik 的路径,粉色表示 Rubik 的路径。 由 ChatGPT 5 翻译