blob: 2bb5ba13c7f0cfcddbe248be525a59b4619dd4ae (
plain)
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
46
47
48
49
50
51
52
53
54
|
program main;
type
Row = Array[0..20] of Int64;
Grid = Array[0..20] of Row;
var
gridpath: Grid;
procedure init_grid();
var
i, j: Integer;
begin
for i := 0 to 20 do
begin
for j := 0 to 20 do
gridpath[i][j] := -1;
end;
end;
procedure calc(row: Integer; col: Integer);
var
r, c: Integer;
ret: Int64;
begin
ret := 0;
if gridpath[row][col] <> -1 then
exit;
r := row + 1;
c := col;
if (r <= 20) and (c <= 20) then
begin
calc(r, c);
ret := ret + gridpath[r][c];
end;
r := row;
c := col + 1;
if (r <= 20) and (c <= 20) then
begin
calc(r, c);
ret := ret + gridpath[r][c];
end;
gridpath[row][col] := ret;
end;
begin
init_grid();
gridpath[20][20] := 1;
calc(0, 0);
writeLn(gridpath[0][0]);
end.
|