#indeednow2015finalbd. [indeednow_2015_finalb_d]Game on a Grid

[indeednow_2015_finalb_d]Game on a Grid

问题文

Indeed 公司的员工 A 正在玩以下这个游戏。

存在一个 H×WH×W 的二维棋盘,其中每个方格的纵向长度为 HH,横向长度为 WW。我们用 (x,y)(x,y) 表示位于第 xx 列、第 yy 行的方格。

每个方格上都有一个非负整数 P(x,y)P_{(x,y)}

A 可以根据以下规则行动:

  • 可以从当前方格移动到相邻的上、下、左、右方格,但不能超出棋盘边界。
  • 当初次到达方格时,获得该方格上的数值作为得分。
  • 当从当前方格移动到未曾到达过的方格时,额外获得移动奖励得分,即 (当前方格数值)×(下一个方格数值)(当前方格数值)×(下一个方格数值)
  • 当移动到已经到达过的方格时,不产生得分。

A 最初位于起始方格 (Sx,Sy)(S_x,S_y)。A 想要根据规则自由行动,并最终到达目标方格 (Gx,Gy)(G_x,G_y)。请输出 A 可以获得的最大总得分。


输入

输入以以下格式从标准输入中给出:

[重要]先前的输入形式中 P(x,y)P(x,y) 的表示方式写错为 P(y,x)P(y,x)。现已修正。非常抱歉给您带来的困扰。(16:01)。

HH WW SxS_x SyS_y GxG_x GyG_y P(1,1)P_{(1,1)} P(2,1)P_{(2,1)}P(W,1)P_{(W,1)} P(1,2)P_{(1,2)} P(2,2)P_{(2,2)}P(W,2)P_{(W,2)} : P(1,H)P_{(1,H)} P(2,H)P_{(2,H)}P(W,H)P_{(W,H)}

  • 11 行为两个用空格分隔的整数 HHWW,表示棋盘的纵向长度和横向长度 (1H,W100)(1≦H,W≦100)
  • 22 行为两个用空格分隔的整数 SxS_xSyS_y,表示起始方格的坐标 (1SxW,1SyH)(1≦S_x≦W,1≦S_y≦H)
  • 33 行为两个用空格分隔的整数 GxG_xGyG_y,表示目标方格的坐标 (1GxW,1GyH)(1≦G_x≦W,1≦G_y≦H)
  • 44 行至第 HH 行每行包含 WW 个用空格分隔的整数 P(x,y)P_{(x,y)},表示每个方格上的数值。
  • 对于任意 xxyy,满足 1xW1≦x≦W1yH1≦y≦H,有 0P(x,y)1000≦P_{(x,y)}≦100

输出

输出一个整数,表示 A 可以获得的最大总得分。在末尾输出换行符。


输入示例1


1 6
2 1
2 1
0 1 2 3 4 0

输出示例1


30

起始方格和目标方格都位于棋盘左边第二个方格。在这个棋盘上,可以获得的最大得分是 30 分,并且以下是实现该得分的一种操作:

  • 初始时,访问起始方格 (2,1)(2, 1),其数值为 1。累计得分为 1 分。
  • 移动到方格 (3,1)(3, 1),其数值为 2,移动奖励得分为 1×21×2。因此,累计得分为 5 分。
  • 移动到方格 (4,1)(4, 1),其数值为 3,移动奖励得分为 2×32×3。因此,累计得分为 14 分。
  • 移动到方格 (5,1)(5, 1),此时累计得分为 30 分。
  • 从已访问过的方格 (4,1)(4, 1) 再次移动到 (3,1)(3, 1),不会得分。
  • (3,1)(3, 1) 移动到 (2,1)(2, 1),也不会得分。行动结束。最终累计得分为 30 分。

输入示例2


3 3
1 1
3 3
2 2 2
1 2 1
1 1 1

输出示例2


33

输入示例3


10 10
5 2
6 2
31 0 60 19 87 98 35 68 21 41
21 46 85 72 51 13 0 49 19 25
79 82 46 65 30 99 29 44 99 8
39 48 70 99 82 32 25 49 32 54
81 20 57 70 5 40 88 97 56 17
69 54 35 98 7 38 59 91 80 34
28 13 14 28 60 26 82 10 17 100
29 0 27 43 45 88 88 92 21 67
62 33 35 22 26 68 74 95 86 79
68 18 83 72 85 21 72 34 57 77

输出示例3


370423