#P1588. 2022.10.12.-秋招-第三题-快递员

2022.10.12.-秋招-第三题-快递员

题目内容

塔子哥是一名快递员,他每天都要在城市里送很多快递。他负责的一个小区是一个很特别的地方,这个小区原本是一个军事基地,后来被改造成了住宅区。因为基地的设计很复杂,所以小区的布局也很奇怪,大体上可以看成一个 m×nm \times n 个方格组成的矩阵。有些地方还保留了原来的防御设施。这些设施对于普通人来说是不可进入的,所以塔子哥不能穿过它们。(0 代表空地, B 代表楼栋, # 代表防御设施)

小区的住户大多数是退伍军人或者军人家属,他们都有一种特殊的习惯:他们不喜欢下楼取快递,而是要求塔子哥把快递送到他们附近的某个地方,然后他们再去取。这是因为他们觉得下楼太麻烦,而且有些人还有战争创伤,不愿意和外界接触。塔子哥虽然觉得这样很不合理,但是他也不敢得罪这些住户,只能尽量满足他们的要求。

塔子哥每天都会从小区的一个入口开始送快递,这个入口的位置是 [row,col][row,col] 。他可以在空地和楼栋之间自由移动,但是不能穿过防御设施。他的投递方式是这样的:他会在小区里选最多 kk 个派件点,然后通知周边楼栋的住户前来取件。派件点必须是空地或者楼栋,并且塔子哥可以到达。通知范围是和派件点距离不超过 ss 的同一行或者同一列,并且没有被防御设施挡住的楼栋。

塔子哥希望能够选择合适的派件点,使得他可以给最多楼栋派发快递,并且节省时间和精力。你能帮助塔子哥吗?

输入描述

第一行:两个整数 mmnn (0<m,n9)(0\lt m,n \leq 9),代表小区的大小

第二行:两个整数 rowrowcolcol (0row<m,0col<n) (0 \leq row \lt m,0 \leq col \lt n),代表快递员的初始位置

第三行:派件点数目 kk (0<k5)(0 \lt k \leq 5)

第四行:派件点可派件的最大距离 ss (0<s30)(0 \lt s \leq 30)

接下来是 mmnn 列的矩阵,每一行的元素以空格分隔,内容为(0,B,#)

用例保证所有的输入在正常范围内。

输出描述

返回最多可派件的楼栋数量。

样例

输入

4 4
0 1
2
1
#0B#
0BB#
0#0#
B#B0

输出

4