Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. program turtle_horse;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses
  6. SysUtils;
  7.  
  8. var
  9. board, d: array[-2..101, -2..101] of integer;
  10. w: array[-2..101, -2..101] of boolean;
  11. n, m, i, j: integer;
  12.  
  13. function max(x, y: integer): integer;
  14. begin
  15. if (x > y) then
  16. result := x
  17. else
  18. result := y;
  19. end;
  20.  
  21. function print(): boolean;
  22. var
  23. i, j: integer;
  24. begin
  25. for i := 1 to n do begin
  26. for j := 1 to m do
  27. write(d[i, j], ' ');
  28. writeln;
  29. end;
  30.  
  31. print := true;
  32. end;
  33.  
  34. begin
  35. assign(input, 'input.txt');
  36. reset(input);
  37. assign(output, 'output.txt');
  38. rewrite(output);
  39.  
  40. read(n, m);
  41.  
  42. for i := 1 to n do
  43. for j := 1 to m do
  44. read(board[i, j]);
  45.  
  46. for i := 1 to n do
  47. for j := 1 to m do begin
  48. d[i, j] := 0;
  49. w[i, j] := false;
  50. end;
  51.  
  52. d[1, 1] := board[1, 1];
  53. w[1, 1] := true;
  54.  
  55. for i := 1 to n do
  56. for j := 1 to m do
  57. if ((w[i - 2, j - 1]) and (w[i - 1, j - 2])) then begin
  58. d[i, j] := d[i, j] + max(d[i - 2, j - 1], d[i - 1, j - 2]) + board[i, j];
  59. w[i, j] := true;
  60. end
  61. else
  62. if (w[i - 2, j - 1]) then begin
  63. d[i, j] := d[i, j] + d[i - 2, j - 1] + board[i, j];
  64. w[i, j] := true;
  65. end
  66. else
  67. if (w[i - 1, j - 2]) then begin
  68. d[i, j] := d[i, j] + d[i - 1, j - 2] + board[i, j];
  69. w[i, j] := true;
  70. end;
  71.  
  72. if (d[n, m] > 0) then
  73. writeln(d[n, m])
  74. else
  75. writeln('-1');
  76.  
  77. close(input);
  78. close(output);
  79. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement