М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
GETRRRR
GETRRRR
10.02.2023 04:26 •  Информатика

Золото 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

👇
Ответ:

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)

4,5(14 оценок)
Открыть все ответы
Ответ:
emphasisone
emphasisone
10.02.2023
Var a:array[1..100,1..100] of integer; i,j,n,m,max,min:integer; begin write ('Введите количество строк: '); read(n); writeln; write ('Введите количество элементов в строке: '); read(m); writeln; writeln('Введите массив: '); for i:=1 to n do begin for j:=1 to m do begin write(' a[',i,',',j,']='); read(a[i,j]); end; writeln; end; writeln; writeln('Исходный массив: '); for i:=1 to n do begin for j:=1 to m do write(a[i,j],' '); writeln; end; writeln; writeln('Конечный массив: '); for i:=1 to n do begin min:=a[i,1]; max:=a[i,1]; for j:=2 to m do begin if (min>a[i,j]) then min:=a[i,j]; if (max
4,5(57 оценок)
Ответ:
123abcde6
123abcde6
10.02.2023
// PascalABC.Net 3.0, сборка 1066
var
  s, wd: string;
  n, pt: integer;

begin
  Write('Введите строку: ');Readln(s);
  n := Length(s); pt := 1;
  repeat
    // Пропускаем все символы до первого непробельного
    while pt <= n do
      if s[pt] = ' ' then Inc(pt) else break;
    if pt <= n then begin
      // Выделяем очередное слово
      wd := '';
      while pt <= n do
        if s[pt] <> ' ' then begin wd := wd + s[pt]; Inc(pt) end
        else break;
      if (wd <> '') and (LowCase(wd[1]) in ['м'..'я']) then Writeln(wd)
    end
  until pt > n;
end.

Тестовое решение:
Введите строку: **А роза    упала   на    лапу Азора    **
роза
упала
на

А вот так версия 3.0 позволяет решить задачу "по-современному":

// PascalABC.Net 3.0, сборка 1066
begin
  var s:=ReadString('Введите строку: ');
  Writeln('Результат: ',s.ToWords(' ').Where(x->x[1] in ['м'..'я']))
end.

Тестовое решение:
Введите строку:  **А роза    упала   на    лапу Азора    **
Результат: [роза,упала,на]
4,4(9 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ