RosettaCodeData/Task/Maximum-triangle-path-sum/FreeBASIC/maximum-triangle-path-sum.b...

62 lines
1.6 KiB
Plaintext

' version 21-06-2015
' compile with: fbc -s console
Data " 55"
Data " 94 48"
Data " 95 30 96"
Data " 77 71 26 67"
Data " 97 13 76 38 45"
Data " 07 36 79 16 37 68"
Data " 48 07 09 18 70 26 06"
Data " 18 72 79 46 59 79 29 90"
Data " 20 76 87 11 32 07 07 49 18"
Data " 27 83 58 35 71 11 25 57 29 85"
Data " 14 64 36 96 27 11 58 56 92 18 55"
Data " 02 90 03 60 48 49 41 46 33 36 47 23"
Data " 92 50 48 02 36 59 42 79 72 20 82 77 42"
Data " 56 78 38 80 39 75 02 71 66 66 01 03 55 72"
Data " 44 25 67 84 71 67 11 61 40 57 58 89 40 56 36"
Data " 85 32 25 85 57 48 84 35 47 62 17 01 01 99 89 52"
Data " 06 71 28 75 94 48 37 10 23 51 06 48 53 18 74 98 15"
Data " 27 02 92 23 08 71 76 84 15 52 92 63 81 10 44 10 69 93"
Data "END" ' no more data
' ------=< MAIN >=------
Dim As String ln
Dim As Integer matrix(1 To 20, 1 To 20)
Dim As Integer x = 1, y, s1, s2, size
Do
Read ln
ln = Trim(ln)
If ln = "END" Then Exit Do
For y = 1 To x
matrix(x, y) = Val(Left(ln, 2))
ln = Mid(ln, 4)
Next
x += 1
size += 1
Loop
For x = size - 1 To 1 Step - 1
For y = 1 To x
s1 = matrix(x + 1, y)
s2 = matrix(x + 1, y + 1)
If s1 > s2 Then
matrix(x, y) += s1
Else
matrix(x, y) += s2
End If
Next
Next
Print
Print " maximum triangle path sum ="; matrix(1, 1)
' empty keyboard buffer
While InKey <> "" : Wend
Print : Print "hit any key to end program"
Sleep
End