profile
Размещено 3 года назад по предмету Информатика от alexsmir08

Вывести маршрут максимальной стоимости
В левом верхнем углу прямоугольной таблицы размером N×M находится черепашка. В каждой клетке таблицы записано некоторое число. Черепашка может перемещаться вправо или вниз, при этом маршрут черепашки заканчивается в правом нижнем углу таблицы.

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

Входные данные

В первой строке входных данных записаны два натуральных числа N и M, не превосходящих 100 — размеры таблицы. Далее идут N строк, каждая из которых содержит M чисел, разделенных пробелами — описание таблицы. Все числа в клетках таблицы целые и могут принимать значения от 0 до 100.

Выходные данные

Первая строка выходных данных содержит максимальную возможную сумму, вторая — маршрут, на котором достигается эта сумма. Маршрут выводится в виде последовательности, которая должна содержать N−1 букву D, означающую передвижение вниз и M−1 букву R, означающую передвижение направо. Если таких последовательностей несколько, необходимо вывести ровно одну (любую) из них.
ПРИМЕР
ввод
5 5
9 9 9 9 9
3 0 0 0 0
9 9 9 9 9
6 6 6 6 8
9 9 9 9 9

вывод
74
D D R R R R D D

  1. Ответ на вопрос
    Ответ на вопрос дан raaldo

    Ответ:

    проверено на Сириусе

    Объяснение:

    global n,m,matrix,pathmatrix

     

    #Возвращает минимальный путь от (0,0) до (x,y)

    def rec(x, y):

       try:

           return pathmatrix[x,y]

       except:

           if x > 0:

               left = rec(x - 1, y)

           else:

               left = (-1,[])

           if y > 0:

               up = rec(x, y - 1)

           else:

               up = (-1,[])

           maxdist = max(left[0], up[0]) + matrix[x][y]

           if left[0] > up[0]:

               path = pathmatrix[x - 1,y][1].copy()

               path.append('D')

           else:

               path = pathmatrix[x,y - 1][1].copy()

               path.append('R')

           pathmatrix[x,y] = (maxdist,path)

           return pathmatrix[x,y]

     

    n,m = [int(i) for i in input().split()]

    matrix = [[int(i) for i in input().split()] for j in range(n)]

    #Тут будем хранить минимальную дистанцию и путь до каждой клетки от (0,0)

    pathmatrix = {(0,0) : (matrix[0][0], [])}

    res = rec(n-1,m-1)

    print(res[0])

    print(' '.join(res[1]))

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 5 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.