Заданий линейки 18 ЕГЭ по информатике из разных источников. Есть решение на Python

Досрочный экзамен. 08.04.2025

Квадрат разлинован на \(N \times N\) клеток \((1 < N < 30).\) Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100.\) Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота. В «угловых» клетках поля – тех, которые справа и снизу ограничены стенами, Робот не может продолжать движение, поэтому накопленная сумма считается итоговой. Таких конечных клеток на поле может быть несколько, включая правую нижнюю клетку поля. При разных запусках итоговые накопленные суммы могут различаться. Определите максимальную и минимальную денежные суммы среди всех возможных итоговых сумм, которые может собрать Робот, пройдя из левой верхней клетки в конечную клетку маршрута. В ответе укажите два числа - сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером \(N \times N,\) каждая ячейка которой соответствует клетке квадрата. Внутренние и внешние стены обозначены утолщёнными линиями.

Скачать файл >>

Решение:

Файл с решением >>
Ответ:  \(2466 \,\, 310\)

Апробация. 05.03.2025

Квадрат разлинован на \(N \times N\) клеток \((1 < N < 30).\) Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз — в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100.\) Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота. В «угловых» клетках поля – тех, которые справа и снизу ограничены стенами, Робот не может продолжать движение, поэтому накопленная сумма считается итоговой. Таких конечных клеток на поле может быть несколько, включая правую нижнюю клетку поля. При разных запусках итоговые накопленные суммы могут различаться. Определите максимальную и минимальную денежные суммы среди всех возможных итоговых сумм, которые может собрать Робот, пройдя из левой верхней клетки в конечную клетку маршрута. В ответе укажите два числа - сначала максимальную сумму, затем минимальную. Исходные данные представляют собой электронную таблицу размером \(N \times N,\) каждая ячейка которой соответствует клетке квадрата. Внутренние и внешние стены обозначены утолщёнными линиями.

Скачать файл >>

Решение:

Файл с решением >>
Ответ:  \(2463 \,\, 669\)

Демо-2025

Квадрат разлинован на \(N \times N\) клеток \((1 < N < 30).\) Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. Квадрат ограничен внешними стенами. Между соседними клетками квадрата также могут быть внутренние стены. Сквозь стену Робот пройти не может.

Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100.\) Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клеткам маршрута Робота.

В «угловых» клетках поля – тех, которые справа и снизу ограничены стенами, Робот не может продолжать движение, поэтому накопленная сумма считается итоговой. Таких конечных клеток на поле может быть несколько, включая правую нижнюю клетку поля. При разных запусках итоговые накопленные суммы могут различаться.

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

Исходные данные представляют собой электронную таблицу размером \(N \times N,\) каждая ячейка которой соответствует клетке квадрата. Внутренние и внешние стены обозначены утолщёнными линиями.

Скачать файл >>

Решение:

...
Ответ: \(2671 \,\, 419\)

Информатика. 2022-6

Квадрат разлинован на \(N \times N\) клеток \( ( 1 < N < 20)\). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, а по команде вниз — в соседнюю нижнюю. При попытке пересечь границы (внутренние и границы квадрата) Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100\). Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите минимальную и максимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа: сначала минимальную сумму, затем максимальную.

Исходные данные представляют собой электронную таблицу размером \( N \times N\), каждая ячейка которой соответствует клетке квадрата.

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


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

27 41

Скачать файл >>

Решение:

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).


from math import sqrt

# table = [1, 8, 8, 4, 10, 1, 1, 3, 1, 3, 12, 2, 2, 3, 5, 6]
# boundary = ((6, 5),)

table = []
f = open('18var6.csv')
s = f.readline()

while s:
   table += list(map(int, s.split(',')))
   s = f.readline()


boundary=((100, 84), (101, 85), (102, 86), (103, 87), (104, 88), (105, 89))

N = int(sqrt(len(table)))

table_min = [0] * (N ** 2)
table_max = [0] * (N ** 2)

table_min[0] = table[0]
table_max[0] = table[0]

for i in range(1, N):
    table_min[i] = table_min[i-1] + table[i]
    table_max[i] = table_max[i-1] + table[i]
    table_min[i*N] = table_min[(i-1)*N] + table[i*N]
    table_max[i*N] = table_max[(i-1)*N] + table[i*N]

for i in range(1, N):
    for k in range(1, N):
        v_vert = table_min[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else 1000000
        v_hor = table_min[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else 1000000
        table_min[k*N + i] = min(v_vert, v_hor)
        v_vert = table_max[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else -1000000
        v_hor = table_max[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else -1000000
        table_max[k*N + i] = max(v_vert, v_hor)

print(table_min[-1], table_max[-1])

Ответ: \(463\)    \(730\)

Информатика. 2022-5

Квадрат разлинован на \(N \times N\) клеток \( ( 1 < N < 20)\). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, а по команде вниз — в соседнюю нижнюю. При попытке пересечь границы (внутренние и границы квадрата) Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100\). Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите минимальную и максимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа: сначала минимальную сумму, затем максимальную.

Исходные данные представляют собой электронную таблицу размером \( N \times N\), каждая ячейка которой соответствует клетке квадрата.

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


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

27 41

Скачать файл >>

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).


from math import sqrt

# table = [1, 8, 8, 4, 10, 1, 1, 3, 1, 3, 12, 2, 2, 3, 5, 6]
# boundary = ((6, 5),)

table = []
f = open('18var5.csv')
s = f.readline()

while s:
   table += list(map(int, s.split(',')))
   s = f.readline()


boundary=((100, 84), (101, 85), (102, 86), (103, 87), (104, 88), (105, 89))

N = int(sqrt(len(table)))

table_min = [0] * (N ** 2)
table_max = [0] * (N ** 2)

table_min[0] = table[0]
table_max[0] = table[0]

for i in range(1, N):
    table_min[i] = table_min[i-1] + table[i]
    table_max[i] = table_max[i-1] + table[i]
    table_min[i*N] = table_min[(i-1)*N] + table[i*N]
    table_max[i*N] = table_max[(i-1)*N] + table[i*N]

for i in range(1, N):
    for k in range(1, N):
        v_vert = table_min[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else 1000000
        v_hor = table_min[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else 1000000
        table_min[k*N + i] = min(v_vert, v_hor)
        v_vert = table_max[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else -1000000
        v_hor = table_max[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else -1000000
        table_max[k*N + i] = max(v_vert, v_hor)

print(table_min[-1], table_max[-1])

Ответ: \(517\)    \(750\)

Информатика. 2022-4

Квадрат разлинован на \(N \times N\) клеток \( ( 1 < N < 20)\). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, а по команде вниз — в соседнюю нижнюю. При попытке пересечь границы (внутренние и границы квадрата) Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100\). Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа: сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером \( N \times N\), каждая ячейка которой соответствует клетке квадрата.

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

1  5  8 4
8  1  7 3
1 10 1 2
2  5  5 4

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

31 21

Скачать файл >>

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).


from math import sqrt

# table = [1, 5, 8, 4, 8, 1, 7, 3, 1, 10, 1, 2, 2, 5, 5, 4]
# boundary = ((13,9),)

table = []
f = open('18var4.csv')
s = f.readline()

while s:
   table += list(map(int, s.split(',')))
   s = f.readline()


boundary=((302, 282), (303, 283), (304, 284), (305, 285), (306, 286), \
    (307, 287), (310, 290), (311, 291), )

N = int(sqrt(len(table)))

table_min = [0] * (N ** 2)
table_max = [0] * (N ** 2)

table_min[0] = table[0]
table_max[0] = table[0]

for i in range(1, N):
    table_min[i] = table_min[i-1] + table[i]
    table_max[i] = table_max[i-1] + table[i]
    table_min[i*N] = table_min[(i-1)*N] + table[i*N]
    table_max[i*N] = table_max[(i-1)*N] + table[i*N]

for i in range(1, N):
    for k in range(1, N):
        v_vert = table_min[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else 1000000
        v_hor = table_min[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else 1000000
        table_min[k*N + i] = min(v_vert, v_hor)
        v_vert = table_max[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else -1000000
        v_hor = table_max[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else -1000000
        table_max[k*N + i] = max(v_vert, v_hor)

print(table_max[-1], table_min[-1])

Ответ: \(710\)    \(573\)

Информатика. 2022-3

Квадрат разлинован на \(N \times N\) клеток \( ( 1 < N < 20)\). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, а по команде вниз — в соседнюю нижнюю. При попытке пересечь границы (внутренние и границы квадрата) Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100\). Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа: сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером \( N \times N\), каждая ячейка которой соответствует клетке квадрата.

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

1  5   8 4
8  1   7 3
1 |10 1 2
2  5   5 4
Для указанных входных данных ответом должна быть пара чисел:

31 21

Скачать файл >>

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).


from math import sqrt

# table = [1, 5, 8, 4, 8, 1, 7, 3, 1, 10, 1, 2, 2, 5, 5, 4]
# boundary = ((13,9),)

table = []
f = open('18var3.csv')
s = f.readline()

while s:
   table += list(map(int, s.split(',')))
   s = f.readline()


boundary=((303, 283), (304, 284), (305, 285), (306, 286), (307, 287), \
    (308, 288), (309, 289), (310, 290), )

N = int(sqrt(len(table)))

table_min = [0] * (N ** 2)
table_max = [0] * (N ** 2)

table_min[0] = table[0]
table_max[0] = table[0]

for i in range(1, N):
    table_min[i] = table_min[i-1] + table[i]
    table_max[i] = table_max[i-1] + table[i]
    table_min[i*N] = table_min[(i-1)*N] + table[i*N]
    table_max[i*N] = table_max[(i-1)*N] + table[i*N]

for i in range(1, N):
    for k in range(1, N):
        v_vert = table_min[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else 1000000
        v_hor = table_min[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else 1000000
        table_min[k*N + i] = min(v_vert, v_hor)
        v_vert = table_max[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else -1000000
        v_hor = table_max[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else -1000000
        table_max[k*N + i] = max(v_vert, v_hor)

print(table_max[-1], table_min[-1])

Ответ: \(710\)    \(604\)

Информатика. 2022-2

Квадрат разлинован на \(N \times N\) клеток \( ( 1 < N < 20)\). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, а по команде вниз — в соседнюю нижнюю. При попытке пересечь границы (внутренние и границы квадрата) Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100\). Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа: сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером \( N \times N\), каждая ячейка которой соответствует клетке квадрата.

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

1   5   8   4
10 1   10 3
1   3| 1    2
2   3   5   6
Для указанных входных данных ответом должна быть пара чисел:

36 24

Скачать файл >>

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).


from math import sqrt

# table = [1, 5, 8, 4, 10, 1, 10, 3, 1, 3, 1, 2, 2, 3, 5, 6]
# boundary = ((10,9),)

table = []
f = open('18var2.csv')
s = f.readline()

while s:
    table += list(map(int, s.split(',')))
    s = f.readline()


boundary=((43, 42), (63, 62), (83, 82), (103, 102), (123, 122), \
    (226, 225), (246, 245), (266, 265), (286, 285))

N = int(sqrt(len(table)))

table_min = [0] * (N ** 2)
table_max = [0] * (N ** 2)

table_min[0] = table[0]
table_max[0] = table[0]

for i in range(1, N):
    table_min[i] = table_min[i-1] + table[i]
    table_max[i] = table_max[i-1] + table[i]
    table_min[i*N] = table_min[(i-1)*N] + table[i*N]
    table_max[i*N] = table_max[(i-1)*N] + table[i*N]

for i in range(1, N):
    for k in range(1, N):
        v_vert = table_min[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else 1000000
        v_hor = table_min[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else 1000000
        table_min[k*N + i] = min(v_vert, v_hor)
        v_vert = table_max[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else -1000000
        v_hor = table_max[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else -1000000
        table_max[k*N + i] = max(v_vert, v_hor)

print(table_max[-1], table_min[-1])

Ответ: \(721\)   \(559\)

Информатика. 2022-1

Квадрат разлинован на \(N \times N\) клеток \( ( 1 < N < 20)\). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, а по команде вниз — в соседнюю нижнюю. При попытке пересечь границы (внутренние и границы квадрата) Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от \(1\) до \(100\). Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежные суммы, которые может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа: сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером \( N \times N\), каждая ячейка которой соответствует клетке квадрата.

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

1   5   8  4
10 1  10  3
1   3|  1  2
2   3   5  6
Для указанных входных данных ответом должна быть пара чисел:

36 24

Скачать файл CSV >>

Скачать файл Excel >>

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).


from math import sqrt

# table = [1, 5, 8, 4, 10, 1, 10, 3, 1, 3, 1, 2, 2, 3, 5, 6]
# boundary = ((10,9),)

table = []
f = open('18var1.csv')
s = f.readline()

while s:
    table += list(map(int, s.split(',')))
    s = f.readline()


boundary=((69, 68), (89, 88), (109, 108), (129, 128), (169, 168), \
    (189, 188), (209, 208), (229, 228))

N = int(sqrt(len(table)))

table_min = [0] * (N ** 2)
table_max = [0] * (N ** 2)

table_min[0] = table[0]
table_max[0] = table[0]

for i in range(1, N):
    table_min[i] = table_min[i-1] + table[i]
    table_max[i] = table_max[i-1] + table[i]
    table_min[i*N] = table_min[(i-1)*N] + table[i*N]
    table_max[i*N] = table_max[(i-1)*N] + table[i*N]

for i in range(1, N):
    for k in range(1, N):
        v_vert = table_min[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else 1000000
        v_hor = table_min[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else 1000000
        table_min[k*N + i] = min(v_vert, v_hor)
        v_vert = table_max[(k-1)*N+i] + table[k*N+i] if (k*N+i, (k-1)*N+i) not in boundary else -1000000
        v_hor = table_max[k*N+i-1] + table[k*N+i] if (k*N+i, k*N+i-1) not in boundary else -1000000
        table_max[k*N + i] = max(v_vert, v_hor)

print(table_max[-1], table_min[-1])

Ответ: \(720\)   \(602\)

Статград-22-3-2

Робот стоит в левом нижнем углу прямоугольного поля, в каждой клетке которого записано натуральное число. За один ход робот может переместится на одну клетку вправо или на одну клетку вверх. Выходить за пределы поля робот не может. Некоторые клетки на поле окружены границами, в эти клетки роботу заходить нельзя.

В начальный момент времен запас энергии робота составляет \( 3000 \) единиц. Проходя через каждую клетку робот расходует энергию, при этом расход равен числу, записанному в клетке. В клетках с выделенным фоном находятся зарядные станции. При прохождении через эти клетки робот не расходует а пополняет запас энергии. Сумма пополнения равна числу, записанному в этой клетке.

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

Исходные данные записаны в электронной таблице. Границы отмечены утолщенными линиями.

Пример входных данных (для таблицы размером \( 4 \times 4 \)):


При указанных входных данных максимальное значение получается при движении по маршруту \( 3000 - 44 - 12 + 90 - 55 - 32 - 17 - 50 = 2880\), а минимальное — при движении по маршруту \( 3000 - 44 - 12 - 80 - 55 - 32 - 17 - 50 = 2710 \).

Скачать файл >>

Исходная таблица с данными

Решение:


Ответ: ...

Статград-22-3-1

Робот стоит в левом верхнем углу прямоугольного поля, в каждой клетке которого записано натуральное число. За один ход робот может переместится на одну клетку вправо или на одну клетку вниз. Выходить за пределы поля робот не может. Некоторые клетки на поле окружены границами, в эти клетки роботу заходить нельзя.

В начальный момент времен запас энергии робота составляет \( 3000 \) единиц. Проходя через каждую клетку робот расходует энергию, при этом расход равен числу, записанному в клетке. В клетках с выделенным фоном находятся зарядные станции. При прохождении через эти клетки робот не расходует а пополняет запас энергии. Сумма пополнения равна числу, записанному в этой клетке.

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

Исходные данные записаны в электронной таблице. Границы отмечены утолщенными линиями.

Пример входных данных (для таблицы размером \( 4 \times 4 \)):


При указанных входных данных максимальное значение получается при движении по маршруту \( 3000 - 13 - 8 + 35 - 57 - 17 - 32 - 43 = 2865\), а минимальное — при движении по маршруту \( 3000 - 13 - 30 - 32 - 90 - 12 - 80 - 43 = 2700 \).

Скачать файл >>

Исходная таблица с данными

Решение:


Ответ: ...

Статград-22-2-2

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

В начальный момент запас энергии робота равен числу, записанному в стартовой клетке. При каждом шаге робот расходует энергию. При шаге вниз расход энергии равен числу, записанному в клетке, в которую переходит робот, при шаге вправо — удвоенному числу, записанному в клетке, в которую переходит робот.

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

Исходные данные записаны в электронной таблице. Стены отмечены утолщёнными линиями.

Пример входных данных (для таблицы размером \( 4 \times 4 )\):


При указанных входных данных максимальное значение получается при движении по маршруту \( 500 - 2 \cdot 8 - 35 - 2 \cdot 57 - 2 \cdot 17 - 32 - 43 = 226\), а минимальное при движении по маршруту \( 500 - 30 - 32 - 44 - 2 \cdot 12 - 2 \cdot 80 - 2 \cdot 43 = 124 \).

Скачать файл >>

Исходная таблица с данными

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).

Ответ: ...

Статград-22-2-1

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

В начальный момент запас энергии робота равен числу, записанному в стартовой клетке. При каждом шаге робот расходует энергию. При шаге вправо расход энергии равен числу, записанному в клетке, в которую переходит робот, при шаге вниз — удвоенному числу, записанному в клетке, в которую переходит робот.

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

Исходные данные записаны в электронной таблице. Стены отмечены утолщёнными линиями.

Пример входных данных (для таблицы размером \( 4 \times 4 )\):


При указанных входных данных максимальное значение получается при движении по маршруту \( 500 - 8 - 2 \cdot 35 - 2 \cdot 1 - 2 \cdot 12 - 80 - 43 = 273\), а минимальное при движении по маршруту \( 500 - 8 - 69 - 2 \cdot 57 - 17 - 2 \cdot 32 - 2 \cdot 43 = 142 \).

Скачать файл >>

Исходная таблица с данными

Решение:

На экзамене рекомендуется решать это задание с помощью табличного процессора.

Python

Границы необходимо вручную добавить в кортеж кортежей boundary. Каждый кортеж внутри boundary имеет вид \( (m , \,\, n) \), где \( m \) — номер ячейки с границей, а \( n \) — номер ячейки, из которой нельзя попасть в ячейку с номером \( m \). Например, \( ( 14, \,\, 10 ) \) означает, что в ячейку с номером \( 14 \) нельзя попасть из ячейки с номером \( 10 \).

Ответ: ...

Статград-22-1-2

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

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

Исходные данные записаны в электронной таблице.

Пример входных данных (для таблицы размером \( 4 \times 4 )\):

200 8  69  50
87  35  7   17
32   1   9   32
44   12 80 43
При указанных входных данных максимальное значение получается при движении по маршруту \( 200 - 8 + 69 - 7 + 17 + 32 + 43 = 346 \), а минимальное при движении по маршруту \( 200 - 87 - 35 - 7 + 9 + 80 - 43 = 117 \).

Скачать файл >>

Решение:


Ответ: ...

Статград-22-1-1

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

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

Исходные данные записаны в электронной таблице.

Пример входных данных (для таблицы размером \( 4 \times 4 )\):

200 8   69    50
87   35  7    17
32   1    9    32
44   12  80  43
При указанных входных данных максимальное значение получается при движении по маршруту \( 200 + 87 + 35 + 7 - 9 - 80 + 43 = 283 \), а минимальное при движении по маршруту \( 200 + 8 - 69 + 7 - 17 - 32 - 43 = 54 \).

Скачать файл >>

Решение:


Ответ: ...