From 045bca0f6c0e17351372f65b60f635dc37da75d1 Mon Sep 17 00:00:00 2001 From: Mistivia Date: Thu, 28 Aug 2025 05:00:57 +0800 Subject: solve 15 --- 0015/main.pas | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 0015/main.pas diff --git a/0015/main.pas b/0015/main.pas new file mode 100644 index 0000000..2bb5ba1 --- /dev/null +++ b/0015/main.pas @@ -0,0 +1,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. + -- cgit v1.0