Path sum: two ways
Problem 081: Path sum: two ways
In the 5 by 5 matrix below, the minimal path sum from the top left to the bottom right, by only moving to the right and down, is indicated in bold red and is equal to 2427.
131 673 234 103 018
201 096 342 965 150
630 803 746 422 111
537 699 497 121 956
805 732 524 037 331
Find the minimal path sum, in matrix.txt (right click and "Save Link/Target As..."), a 31K text file containing a 80 by 80 matrix, from the top left to the bottom right by only moving right and down.
Solution:
1096 0020 1318 ... 9377
# ... # 9607 7385 0521 ... 9230
. . . . 7206 3114 7760 ... 2187
. . . 3620 8024 0577 ... 7505
. . . . 1074 5438 9008 ... 6942
# ... # 4295 1176 5596 ... 4757
>"d@"*>1-:::::"P"%5*"g"+\"P"/g"0"-\::"P"%5*"f"+\"P"/g"0"-\::"P"%5*"e"+\"P"/g"0"-\: v
|:p+"d"/"P"\+9%"P":\*:*"~~"p+2/"P"\+9%"P":\+*+55+*+55+*+55-"0"g/"P"\+"d"*5%"P"<
$ >20g8+30g"d"v
>0>:20p 0>:30p20g9+30g2+g20g9+30g"c"+g20g8+30g"d"+g20g30g+!#v_20g!#v_30g!#v_`|
|-"P":+1p+"d"g03+9g02 < < < <>20g9+30g"c"v
|-"P":+1$< ^$$< ^+$< ^+$\< ^ +g+<
$
>"O"9+"Od"+g.@
# ... #
. . . .
. . .
. . . .
# ... #
Explanation:
Well, this is practically extremely simple path finding.
We generate an array where we remember the shortest distance from [0,0] to this node.
Initially we can set distance[0, 0] = data[0,0]
The we got through our data row by row and column by column.
The distance of every node we visit is the minimum of top-node-distance + own value
and left-node-distance + own value
.
Then after we iterated through every single node the result is written in the bottom right corner.
Interpreter steps: | 1 697 244 |
Execution time (BefunExec): | 234ms (7.25 MHz) |
Program size: | 500 x 180 |
Solution: | 427337 |
Solved at: | 2015-09-12 |