about summary refs log tree commit diff
path: root/12/TP-HN-2008/R1/BL3.PAS
blob: a49b4d600fa7ce232d8a70be81d286d6bc112a23 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
type ar = array[0..3] of longint;

var
  f : text;
  m, n, i, j : shortint;
  a : array[1..101, -1..102] of longint;
  tmp, max : longint;

function next(x, y : shortint) : ar;
  begin
    next[0] := a[x + 1, y - 2];
    next[1] := a[x + 1, y + 2];
    next[2] := a[x + 2, y - 1];
    next[3] := a[x + 2, y + 1]
  end;

begin
  for i := 1 to 101 do
    for j := -1 to 102 do
      a[i, j] := 0;
  assign(f, 'QM.IN');
  reset(f);
  readln(f, m, n);
  for i := 1 to m do
    for j := 1 to n do
      read(f, a[i, j]);
  close(f);
  for i := m - 1 downto 1 do
    for j := 1 to n do
      begin
        max := 0;
        for tmp in next(i, j) do
          if tmp > max then
            max := tmp;
        a[i, j] := a[i, j] + max;
      end;
  assign(f, 'QM.OU');
  rewrite(f);
  max := 0;
  for i := 1 to n do
    if a[1, i] > max then
      max := a[1, i];
  writeln(f, max);
  close(f);
end.