#CF2045G. X 光环
X 光环
G. X 光环
每个测试点时间限制: 秒
每个测试点内存限制: 兆字节
ICPC 山可以表示为一个有 行(编号 到 )和 列(编号 到 )的网格。位于第 行第 列的格子记为 ,其高度为 。两个格子如果共享一条边,则称它们相邻。形式化地说, 与 、、、 相邻(如果存在的话)。
你只能在相邻格子之间移动,每次移动都有一个代价。拥有一个奇数正整数 的光环时,从一个高度为 的格子移动到高度为 的格子产生的代价为 。注意代价可以为负数。
你要回答 个独立的场景。在每个场景中,你从起点格子 出发,要到达终点格子 ,要求最小化总代价。在某些场景中,总代价可能会变得任意小(没有下界),这样的场景称为无效的。请找出从起点到终点的最小总代价,或者判断该场景是否无效。
输入
第一行包含三个整数 、、(;; 为奇数)。
接下来 行,每行一个长度为 的字符串 。字符串中的每个字符是数字 到 ,表示格子 的高度 。
下一行包含一个整数 ()。
接下来 行,每行四个整数 、、、(;)。
输出
对于每个场景,输出一行。如果场景无效,输出 INVALID;否则,输出一个整数,表示从起点到终点的最小总代价。
样例
输入
3 4 1
3359
4294
3681
5
1 1 3 4
3 3 2 1
2 2 1 4
1 3 3 2
1 1 1 1
输出
2
4
-7
-1
0
输入
2 4 5
1908
2023
2
1 1 2 4
1 1 1 1
输出
INVALID
INVALID
输入
3 3 9
135
357
579
2
3 3 1 1
2 2 2 2
输出
2048
0
样例解释
对于样例 #1:
第一个场景,一种移动路径为:$(1,1) \to (2,1) \to (3,1) \to (3,2) \to (3,3) \to (3,4)$。总代价为
对于样例 #2:
第一个场景,存在一个循环 ,其代价为
你可以重复该循环使总代价任意小。类似地,第二个场景中可以先移动到 ,再重复该循环。