编程题

编程实现:

在一个 M 行 N 列的网格中放有若干个坚果(一个小格子里最多放一个坚果),第 X 行 Y 列的小格子是小松鼠的家。

小松鼠可以向上下左右的格子移动寻找坚果,但它每次从家出发后,最多可以移动 K 个小格子,发现格子中有坚果,就会将其运回家储藏起来(运回家所移动的格子不做计算),然后再从家出发寻找其他坚果。小松鼠最多可以储藏几个坚果。

例如:M=7,N=6,X=3,Y=4,K=3,在 7 行 6 列的网格中有若干个坚果(如下图),小松鼠的家在第 3 行,第 4 列的位置,最多可以移动 3 个小格。

小松鼠最多可以储藏 7 个坚果(小格子底色为绿色的坚果)。

输入描述:

第一行输入两个正整数 M 和 N(2≤M≤30,1≤N≤30),表示 M 行 N 列的网格,两个正整数之间以一个英文逗号隔开;

第二行输入两个正整数 X 和 Y(1≤X≤M,1≤Y≤N),表示小松鼠家的位置在第 X 行第 Y 列,两个正整数之间以一个英文逗号隔开;

第三行输入一个正整数 K(1≤K≤max(M, N)-1),表示小松鼠从家出发后,最多可以移动的小格子数第四行开始,输入 M 行,每行 N 个整数,除了第 X 行 Y 列的小格子用 2 表示小松鼠的家,其他小格子的整数只能是 0 或者 1。0 表示小格子中没有坚果,1 表示小格子中有 1 个坚果,整数之间以一个英文逗号隔开。

输出描述:

输出一个整数,表示小松鼠最多可以储藏的坚果数量。


样例输入:

7,6
3,4
3
0,0,1,0,1,0
0,0,0,0,1,0
0,1,0,2,0,0
1,0,0,1,0,1
0,0,1,0,0,0
0,0,0,0,0,1
1,0,0,1,0,0

样例输出:

7
查看答案
赣ICP备20007335号-2