среда, 7 августа 2013 г.

15. Мышка и зернышки

prb15В индийском храме пол прямоугольной формы выложен одинаковыми квадратными плитками 1х1, на каждую из которых высыпано от 0 до kзернышек (k ≤ 30000). Размеры пола mхn. Мышка выбегает из левого нижнего угла пола храма и двигается к входу в другую норку, расположенную в противоположном углу. Мышка может двигаться только вправо или вперед, собирая все зернышки с плитки, на которой она находится.
   Найти маршрут, двигаясь по которому мышка соберет наибольшее количество зернышек.
Код решения:
*****
var
a:array[0..102,0..102] of longint;
n,m,i,j:integer;
s:string;
begin
   read(m,n);
   if m>n then j:=m else j:=n;
   for i:=0 to j do
   begin
       a[i,0]:=-1;
       a[i,n+1]:=-1;
       a[0,i]:=-1;
       a[m+1,i]:=-1;
   end;
   for i:=1 to m do
       for j:=1 to n do
           read(a[i,j]);
   for i:=m downto 1 do
       for j:=1 to n do
            if not((i=m)and(j=1)) then
            if a[i,j-1]>a[i+1,j] then
                a[i,j]:=a[i,j]+a[i,j-1]
            else
                a[i,j]:=a[i,j]+a[i+1,j];
   i:=1;j:=n;
   while(i=i)do
   begin
        if (i=m)and(j=1) then break;
        if a[i,j-1]>a[i+1,j] then
        begin
             s:='R'+s;
             j:=j-1;
        end else
        begin
             s:='F'+s;
             i:=i+1;
        end;
   end;
   writeln(s);
end.

*****

Комментариев нет:

Отправить комментарий