RosettaCodeData/Task/Maximum-triangle-path-sum/Elena/maximum-triangle-path-sum.elena

53 lines
1.4 KiB
Text
Raw Permalink Normal View History

2019-09-12 10:33:56 -07:00
import system'routines;
import extensions;
import extensions'math;
2018-06-22 20:57:24 +00:00
2019-09-12 10:33:56 -07:00
string input = "55
2018-06-22 20:57:24 +00:00
94 48
95 30 96
77 71 26 67
97 13 76 38 45
07 36 79 16 37 68
48 07 09 18 70 26 06
18 72 79 46 59 79 29 90
20 76 87 11 32 07 07 49 18
27 83 58 35 71 11 25 57 29 85
14 64 36 96 27 11 58 56 92 18 55
02 90 03 60 48 49 41 46 33 36 47 23
92 50 48 02 36 59 42 79 72 20 82 77 42
56 78 38 80 39 75 02 71 66 66 01 03 55 72
44 25 67 84 71 67 11 61 40 57 58 89 40 56 36
85 32 25 85 57 48 84 35 47 62 17 01 01 99 89 52
06 71 28 75 94 48 37 10 23 51 06 48 53 18 74 98 15
2019-09-12 10:33:56 -07:00
27 02 92 23 08 71 76 84 15 52 92 63 81 10 44 10 69 93";
2018-06-22 20:57:24 +00:00
2019-09-12 10:33:56 -07:00
public program()
{
var list := new IntMatrix(18,19);
2018-06-22 20:57:24 +00:00
2019-09-12 10:33:56 -07:00
int i := 0;
int j := 0;
input.split(forward newLine).forEach:(string line)
{
j := 0;
line.trim().split(" ").forEach:(string num)
{
list[i][j] := num.toInt();
2018-06-22 20:57:24 +00:00
j += 1
2019-09-12 10:33:56 -07:00
};
2018-06-22 20:57:24 +00:00
2019-09-12 10:33:56 -07:00
i += 1
};
2018-06-22 20:57:24 +00:00
2019-09-12 10:33:56 -07:00
for(int i := 16, i >= 0, i-=1)
{
for(int j := 0, j < 18, j += 1)
{
2020-02-17 23:21:07 -08:00
list[i][j] := max(list[i][j] + list[i+1][j], list[i][j] + list[i+1][j+1])
2019-09-12 10:33:56 -07:00
}
};
2018-06-22 20:57:24 +00:00
2019-09-12 10:33:56 -07:00
console.printLine("Maximum total: ", list[0][0])
}