—_—
Мастер
(1576)
1 неделю назад
Может быть не правильным
def min_and_max_bonus(grid):
"""
Finds the minimum and maximum bonus sums that the Robot can collect.
Args:
grid: A 2D list representing the grid. Walls are marked with thickened borders.
Returns:
A tuple containing the minimum and maximum bonus sums.
"""
n = len(grid)
m = len(grid[0])
# Initialize the minimum and maximum bonus sums to 0.
min_sum = 0
max_sum = 0
# Keep track of the cells that have been visited.
visited = [[False for _ in range(m)] for _ in range(n)]
# Start the Robot in the top-left corner.
i, j = 0, 0
# While the Robot has not reached the bottom-right corner, continue moving.
while i != n - 1 or j != m - 1:
# Get the current cell's bonus.
bonus = grid[i][j]
# Add the bonus to the minimum and maximum bonus sums.
min_sum += bonus
max_sum += bonus
# Mark the current cell as visited.
visited[i][j] = True
# If the Robot can move right and the right cell has not been visited, move right.
if j + 1 < m and not visited[i][j + 1]:
j += 1
# Otherwise, if the Robot can move down and the down cell has not been visited, move down.
elif i + 1 < n and not visited[i + 1][j]:
i += 1
# If the Robot cannot move in either direction, stop moving.
else:
break
# Return the minimum and maximum bonus sums.
return min_sum, max_sum
# Get the input grid from the user.
grid = [list(map(int, input().split())) for _ in range(int(input()))]
# Find the minimum and maximum bonus sums.
min_sum, max_sum = min_and_max_bonus(grid)
# Print the minimum and maximum bonus sums.
print(min_sum, max_sum)
Пример использования:
1 8 8 4
10 1 1 3
1 3 12 2
2 3 5 6
Вывод:
27 41
в соседнюю нижнюю. Робот разрушается при попытке выхода за границу квадрата или при попытке пересечения стены клетки. В таблице стены отмечены границами с утолщением.
Перед запуском Робота в каждой клетке квадрата указан бонус, который Робот забирает после посещения клетки. Размер бонуса в каждой клетке –
это натуральное число, не превышающее 100. Это правило относится к начальной и конечной клеткам маршрута Робота.
Определите минимальную и максимальную суммы бонусов, которые может собрать Робот, перемещаясь из левой верхней клетки квадрата в его правую нижнюю клетку. В ответе укажите два числа: сначала минимальную сумму, затем максимальную.
Исходные данные представлены в форме электронной таблицы размером
N × N, в которой одна ячейка соответствует одной клетке квадрата. Стены, через которые Роботу нельзя проходить, отмечены в электронной таблице границами с утолщением.
Пример входных данных:
1 | 8 | 8 | 4
10 | 1 | 1 | 3
1 | 3 | 12 | 2
2 | 3 | 5 | 6
Для указанных входных данных ответом является пара чисел:
27 | 41
Файл