Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program turtle_horse;
- {$APPTYPE CONSOLE}
- uses
- SysUtils;
- var
- board, d: array[-2..101, -2..101] of integer;
- w: array[-2..101, -2..101] of boolean;
- n, m, i, j: integer;
- function max(x, y: integer): integer;
- begin
- if (x > y) then
- result := x
- else
- result := y;
- end;
- function print(): boolean;
- var
- i, j: integer;
- begin
- for i := 1 to n do begin
- for j := 1 to m do
- write(d[i, j], ' ');
- writeln;
- end;
- print := true;
- end;
- begin
- assign(input, 'input.txt');
- reset(input);
- assign(output, 'output.txt');
- rewrite(output);
- read(n, m);
- for i := 1 to n do
- for j := 1 to m do
- read(board[i, j]);
- for i := 1 to n do
- for j := 1 to m do begin
- d[i, j] := 0;
- w[i, j] := false;
- end;
- d[1, 1] := board[1, 1];
- w[1, 1] := true;
- for i := 1 to n do
- for j := 1 to m do
- if ((w[i - 2, j - 1]) and (w[i - 1, j - 2])) then begin
- d[i, j] := d[i, j] + max(d[i - 2, j - 1], d[i - 1, j - 2]) + board[i, j];
- w[i, j] := true;
- end
- else
- if (w[i - 2, j - 1]) then begin
- d[i, j] := d[i, j] + d[i - 2, j - 1] + board[i, j];
- w[i, j] := true;
- end
- else
- if (w[i - 1, j - 2]) then begin
- d[i, j] := d[i, j] + d[i - 1, j - 2] + board[i, j];
- w[i, j] := true;
- end;
- if (d[n, m] > 0) then
- writeln(d[n, m])
- else
- writeln('-1');
- close(input);
- close(output);
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement