#L0828. 小球滑行的最远距离

小球滑行的最远距离

题目描述

在一个 NNMM 列的网格平面上,某些格子放置了障碍物,其余格子是空地。一个小球初始位于第 xx 行第 yy 列的空地格子上。

该平面可以向四个方向(上、下、左、右)倾斜。在每个时刻,平面以某个固定方向倾斜,小球会受到沿倾斜方向的力。小球可以选择顺着力滑动到相邻的空地格子,或者启动磁力制动器让自己停在原地不动。如果相邻格子是障碍物或超出网格边界,小球不能向该方向移动。

已知 KK 个连续的时间段,每个时间段内平面倾斜方向保持不变。请计算小球在所有时间段内能够滑行的最大总距离(即经过的格子数)。

输入格式

第一行包含 55 个整数 NN, MM, xx, yyKKNNMM 表示网格大小,xxyy 表示小球初始位置(行号和列号),KK 表示时间段数目。

接下来 NN 行,每行 MM 个字符,描述网格。第 ii 行第 jj 列的字符若为 .,则表示空地;若为 x,则表示障碍物。

接下来 KK 行,每行三个整数 sis_i, tit_i, did_i,表示在时间区间 [si,ti][s_i, t_i] 内平面向 did_i 方向倾斜。did_i 取值为 11, 22, 33, 44 中的一个,依次表示上、下、左、右。输入保证区间连续,即 s1=1s_1 = 1si=ti1+1s_i = t_{i-1} + 11<iK1 \lt i \le K)。

输出格式

输出一行,包含一个整数,表示小球滑行的最大总距离。

样例

4 5 4 1 3
..xx.
.....
...x.
.....
1 3 4
4 5 1
6 7 3
6

提示

【样例说明】

小球的滑行路线为:先向右滑动 22 格,然后在第 22 个时间段启动制动器停住 11 步,再向上滑动 11 格,最后向左滑动 22 格,总计 66 格。

【数据范围】

50%50\% 的数据中,1N,M2001 \le N, M \le 200T200T \le 200

100%100\% 的数据中,1N,M2001 \le N, M \le 200K200K \le 200T40000T \le 40000

其中 T=tKT = t_K 表示总时间。

难度 提高+/省选
通过率
尝试 0
已通过 0
ID
1556
类型
传统题
Time Limit
1000ms
Memory Limit
125MiB
上传者