ФИПИ · ЕГЭ · Информатика · Задание 18
60 заданий открытого банка ФИПИ: впишите ответ, при затруднении — подсказка; после ответа — разбор по шагам.
Задания открытого банка ФИПИ «Задание 18. Таблицы: целочисленные данные» (информатика). Ответ вписывается так же, как в бланк ЕГЭ: число, слово или цифры подряд, без пробелов; если в ответе два числа — через пробел, как в таблице ответа (по строкам).
Неофициальная копия. Условия заданий — из открытого банка заданий ФИПИ (fipi.ru); номер у каждого задания открывает его в банке ФИПИ. Ответы, подсказки, разборы и рисунки подготовлены reknow.ru. Нашли ошибку — нажмите «Сообщить об ошибке» у задания.
Задание 18 ЕГЭ по информатике. Умение обрабатывать целочисленные данные в электронных таблицах. На странице — 60 заданий открытого банка ФИПИ: ответ проверяется сразу, есть подсказка и подробный разбор.
Это несколько заданий из тренажёра, остальные — в тренажёре в начале страницы.
| Квадрат разлинован на N × N клеток (1 < N < 26). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку; по команде вниз в соседнюю нижнюю. Робот разрушается при попытке выхода за границу квадрата или при попытке пересечения стены клетки. В таблице стены отмечены границами с утолщением. Перед запуском Робота в каждой клетке квадрата указан бонус, который Робот забирает после посещения клетки. Размер бонуса в каждой клетке это натуральное число, не превышающее 100. Это правило относится к начальной и конечной клеткам маршрута Робота. Определите минимальную и максимальную суммы бонусов, которые может собрать Робот, перемещаясь из левой верхней клетки квадрата в его правую нижнюю клетку. В ответе укажите два числа: сначала минимальную сумму, затем максимальную. Исходные данные представлены в форме электронной таблицы размером
Пример входных данных:
Для указанных входных данных ответом является пара чисел:
| |||||||||||||||||||||
| Файл к заданию (zip) |
import openpyxl
ws = openpyxl.load_workbook('18.xlsx').active
N = 15
b = [[ws.cell(r + 1, c + 1).value for c in range(N)] for r in range(N)]
mn = [[0] * N for _ in range(N)]; mx = [[0] * N for _ in range(N)]
for i in range(N):
for j in range(N):
prev = [(i, j - 1)] * (j > 0) + [(i - 1, j)] * (i > 0)
mn[i][j] = b[i][j] + min((mn[a][c] for a, c in prev), default=0)
mx[i][j] = b[i][j] + max((mx[a][c] for a, c in prev), default=0)
print(mn[-1][-1], mx[-1][-1])Мы используем cookies и сервисы аналитики, чтобы понимать, какие темы нужнее и где сайт работает плохо. Продолжая пользоваться сайтом, вы соглашаетесь с этим. Мы используем cookies. Подробнее