ФИПИ · ЕГЭ · Информатика · Задание 18

Задание 18. Таблицы: целочисленные данные

60 заданий открытого банка ФИПИ: впишите ответ, при затруднении — подсказка; после ответа — разбор по шагам.

0
Решено
0
Правильно
0%
Точность

Задания открытого банка ФИПИ «Задание 18. Таблицы: целочисленные данные» (информатика). Ответ вписывается так же, как в бланк ЕГЭ: число, слово или цифры подряд, без пробелов; если в ответе два числа — через пробел, как в таблице ответа (по строкам).

Неофициальная копия. Условия заданий — из открытого банка заданий ФИПИ (fipi.ru); номер у каждого задания открывает его в банке ФИПИ. Ответы, подсказки, разборы и рисунки подготовлены reknow.ru. Нашли ошибку — нажмите «Сообщить об ошибке» у задания.

Серия: 0

О теме

Задание 18 ЕГЭ по информатике. Умение обрабатывать целочисленные данные в электронных таблицах. На странице — 60 заданий открытого банка ФИПИ: ответ проверяется сразу, есть подсказка и подробный разбор.

Примеры заданий

Это несколько заданий из тренажёра, остальные — в тренажёре в начале страницы.

ФИПИ № 01C951 ↗

Квадрат разлинован на N × N клеток (1 < N < 26). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку; по команде вниз –  в соседнюю нижнюю. Робот разрушается при попытке выхода за границу квадрата или при попытке пересечения стены клетки. В таблице стены отмечены границами с утолщением.

Перед запуском Робота в каждой клетке квадрата указан бонус, который Робот забирает после посещения клетки. Размер бонуса в каждой клетке –  это натуральное число, не превышающее 100. Это правило относится к начальной и конечной клеткам маршрута Робота.

Определите минимальную и максимальную суммы бонусов, которые может собрать Робот, перемещаясь из левой верхней клетки квадрата в его правую нижнюю клетку. В ответе укажите два числа: сначала минимальную сумму, затем максимальную.

Исходные данные представлены в форме электронной таблицы размером
N × N, в которой одна ячейка соответствует одной клетке квадрата. Стены, через которые Роботу нельзя проходить, отмечены в электронной таблице границами с утолщением.

 

Пример входных данных:

1

8

8

4

10

1

1

3

1

3

12

2

2

3

5

6

 

Для указанных входных данных ответом является пара чисел:

27

41

 

Ответ:

 

 

 

Файл к заданию (zip)
Показать ответ
Ответ: 454 693
Решение.
  1. Робот ходит только вправо и вниз, поэтому лучший результат для клетки (i, j) зависит только от клеток (i, j−1) и (i−1, j): sum[i][j] = bonus[i][j] + min (или max) из них. Если между клетками стена, этот сосед не учитывается.
  2. В прилагаемом файле (15 × 15) утолщённой границей обведён только внешний контур квадрата — внутренних стен нет, поэтому из каждой клетки можно идти и вправо, и вниз.
  3. В Excel: в соседнем блоке в левую верхнюю клетку пишем =A1, в первую строку =B1+(клетка слева), в первый столбец =A2+(клетка сверху), в остальные =A2+МИН(клетка слева; клетка сверху) — и протягиваем; для максимума — МАКС. То же на Python:
    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])
  4. Получаем минимальную сумму 454 и максимальную 693.
  5. Ответ: 454 693.