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.
|