находится черепашка. В каждой клетке таблицы записано некоторое число. Черепашка может перемещаться вправо или вниз, при этом маршрут черепашки заканчивается в правом нижнем углу таблицы.
Подсчитаем сумму чисел, записанных в клетках, через которую проползла черепашка (включая начальную и конечную клетку). Найдите наибольшее возможное значение этой суммы и маршрут, на котором достигается эта сумма.
Входные данные
В первой строке входных данных записаны два натуральных числа 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
Подсчёт стоимости я сделал, осталось только буквы выстроить
n, m = map(int, input().split())
p = [list(map(int, input().split())) for i in range(n)]
a = [[0]*m for i in range(n)]
letters = []
x = len(a)
i = len(a[0])
a[0][0] = p[0][0]
for x in range(1, m):
a[0][x] = a[0][x - 1] + p[0][x]
for x in range(1, n):
a[x][0] = a[x - 1][0] + p[x][0]
for x in range(1, n):
for i in range(1, m):
a[x][i] = max(a[x - 1][i], a[x][i - 1]) + p[x][i]
letters = letters[::-1]
print(a[-1][-1])
print(' '.join(letters))