地上有一个 m 行和 n 列的方格。一个机器人从坐标 0,0 的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于 k 的格子。 例如,当 k 为 18 时,机器人能够进入方格(35,37),因为 3+5+3+7 = 18 。但是,它不能进入方格(35,38),因为 3+5+3+8 = 19 。请问该机器人能够达到多少个格子?
数据范围:
, 
一行三个正整数由空格分开,分别代表行数 m ,列数 n ,和坐标数位之和的阈值 k 。
一个正整数,代表该机器人能够到达的格子数量。
3 3 6
9
1 1 1
1
def check(x, y, k): string = str(x) + str(y) ans = 0 for c in string: ans += int(c) return True if ans <= k else False def BFS(x, y): while queue: node = queue.pop(0) x,y = node[0], node[1] for dx, dy in direction: i = dx + x j = dy + y if 0 <= i < len(maze) and 0 <= j < len(maze[0]): if maze[i][j] == 0 and check(i, j, k): maze[i][j] = 1 queue.append((i,j)) nmk = list(map(int, input().split())) n, m, k = nmk[0], nmk[1], nmk[2] maze = [[0] * n for i in range(m)] direction = [(1, 0), (-1, 0), (0, -1), (0, 1)] queue = [(0,0)] maze[0][0] = 1 BFS(0, 0) ans = 0 for item in maze: ans += sum(item) print(ans)