Предмет: Информатика,
автор: mikhailix
Золото Python
Мудрец ходит по комнате размера n×m клеток. В каждой клетке комнаты лежит заданное количество золота. Проходя по клетке мудрец забирает всё золото с неё. Зная план комнаты и маршрут мудреца, посчитайте сколько золота он собрал. В задаче не гарантируется, что мудрец не проходил по одной и той же клетке более одного раза.
Входные данные
Во входных данных описан план комнаты: сначала количество строк n, затем — количество столбцов m (1≤n≤20,1≤m≤20). Затем записано n строк по m чисел в каждой — количество килограммов золота, которое лежит в данной клетке (число от 0 до 50). Далее записано число x — сколько клеток обошел мудрец. Далее записаны координаты этих клеток (координаты клетки — это два числа: первое определяет номер строки, второе — номер столбца), верхняя левая клетка на плане имеет координаты (1,1), правая нижняя — (n,m).
Выходные данные
Выведите количество килограммов золота, которое собрал мудрец.
Примеры
Ввод
3 3
1 2 3
4 5 6
7 8 9
5
1 1
1 2
1 1
1 2
1 1
вывод
3
Ответы
Автор ответа:
1
rows, cols = map(int, input().split())
room = [map(int, input().split()) for y in range(rows)]
path_len = int(input())
path = [map(int, input().split()) for i in range(path_len)]
gold = 0
for (row, col) in path:
gold += room[row - 1][col - 1]
room[row - 1][col - 1] = 0
print(gold)
mikhailix:
на СИРИУСЕ не проходит: Программа выдаёт ошибку в процессе выполнения
Если скажешь, какую именно ошибку, то будет понятнее, в чем проблема.
при вводе3 3
1 2 3
4 5 6
7 8 9
5
1 1
1 2
1 1
1 2
1 1
Traceback (most recent call last):
File "main.py", line 13, in
gold += room[row - 1][col - 1]
TypeError: 'map' object is not subscriptable
1 2 3
4 5 6
7 8 9
5
1 1
1 2
1 1
1 2
1 1
Traceback (most recent call last):
File "main.py", line 13, in
gold += room[row - 1][col - 1]
TypeError: 'map' object is not subscriptable
Интересно… а какая версия питона в СИРИУСЕ?
Понятно, третья. Замени
room = [map(int, input().split()) for y in range(rows)]
на
room = [list(map(int, input().split())) for y in range(rows)]
и
path = [map(int, input().split()) for i in range(path_len)]
на
path = [list(map(int, input().split())) for i in range(path_len)]
room = [map(int, input().split()) for y in range(rows)]
на
room = [list(map(int, input().split())) for y in range(rows)]
и
path = [map(int, input().split()) for i in range(path_len)]
на
path = [list(map(int, input().split())) for i in range(path_len)]
я уже нашёл ответ на сайте киберфорума. щас код скину который прошёл на сириусе
def gather():
x,y = [int(i) - 1 for i in input().split()]
gold = lst[x][y]
lst[x][y] = 0
return gold
lst =[list(map(int,input().split())) for _ in range(list(map(int,input().split()))[0])]
print(sum([gather() for _ in range(int(input()))]))
x,y = [int(i) - 1 for i in input().split()]
gold = lst[x][y]
lst[x][y] = 0
return gold
lst =[list(map(int,input().split())) for _ in range(list(map(int,input().split()))[0])]
print(sum([gather() for _ in range(int(input()))]))
Не-не-не, это месиво из скобочек читать решительно невозможно! Не пишите такой код ))
Похожие вопросы
Предмет: Окружающий мир,
автор: 89037951200
Предмет: Қазақ тiлi,
автор: muhamedzhanova
Предмет: Русский язык,
автор: полька32
Предмет: Математика,
автор: надежда410