Первая строка выходных данных содержит максимальную возможную сумму, вторая — маршрут, на котором достигается эта сумма. Маршрут выводится в виде последовательности, которая должна содержать N−1 букву D, означающую передвижение вниз и M−1 букву R, означающую передвижение направо. Если таких последовательностей несколько, необходимо вывести ровно одну (любую) из них.
дешифровки:
Const sh = '_.,';
Var
St : String;
i : Integer;
Function DeCode(S : String; Tabl : String; k : Integer) : String;
Var j,n : Integer;
Begin
For j:=1 to Length(S) do
Begin
n:=Pos(S[j],sh);
If n>0 then
Begin
n:=n+k;
While n>Length(sh) do n:=n-Length(sh);
While n<=0 do n:=n+Length(sh);
S[j]:=sh[n];
end
end;
DeCode:=S;
end;
Begin
St:='ЗЫФЙГФШРЦ . ШД';
Writeln(Decode(St,sh,-6));
//For i:=-10 to 10 do Writeln(Decode(St,sh,i));
end.
2 - меньше информации
3 - глобус, макет здания, муляж яблока, манекен
4 - рисунок, фотография
5 - знаковой
6 - смешанной
7 - автомобиль — техническое описание автомобиля, город — путеводитель по городу
8 - существенные признаки объекта-оригинала
9 - разные модели объекта
10 - физическая карта, график зависимости расстояния от времени, схема узора для вязания крючком, схема метро
11 - словесное описание, формула
12 - знаковой
13 - смешанной
14 - болт — чертеж болта, мелодия — нотная запись мелодии