Питон 17 .
в левом верхнем углу прямоугольной таблицы размером 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
Паровозы кажется могут толкать состав назад, ехать как задом так и передом и тп. Иначе я не знаю.
Первый поезд делится на (паровоз+10) и 11 вагонов.
И эту десятку паровоз тянет в тупичек.
Второй поезд проезжает тупичек.
Паровоз первого вытягивает свою десятку на свободный путь
Второй паровоз толкает свой состав так чтоб стать перед тупичком
Второй паровоз отцепляется и прицепляется к оставшимся 11 вагонам.
Второй паровоз задом запихивает 11 вагонов в тупичек
Второй паровоз берет свой состав и уезжает
Первый паровоз забирает свои 11 вагонов
(1) A
(2) AAB
(3) AABAABC
(4) AABAABCAABAABCD
(5)
(6)
(7)
(8)
AABAABCAABAABCDEFGH
(9)
A
(10)
A
class Number2
{
String[] Str_ = new String[30];
const string Alphabet = "";
public void Solve()
{
for (int i = 0; i < 10; i++)
{
if (i == 0)
{
Str_[i] += Alphabet[i];
}
else
{
Str_[i] = Str_[i - 1] + Str_[i - 1] + Alphabet[i];
}
Console.WriteLine("({0}) {1}", i + 1, Str_[i]);
if (Str_[i].Length >= 256)
{
Console.WriteLine("{0}",Str_[i][256 - 1]);
}
}
}
}