57 lines
1.2 KiB
Plaintext
57 lines
1.2 KiB
Plaintext
PROGRAM TRIANGLE_PATH
|
|
|
|
CONST ROW=18
|
|
|
|
DIM TRI[200]
|
|
|
|
!
|
|
! for rosettacode,org
|
|
!
|
|
|
|
FUNCTION MAX(X,Y)
|
|
MAX=-X*(X>=Y)-Y*(X<Y)
|
|
END FUNCTION
|
|
|
|
BEGIN
|
|
|
|
DATA(55)
|
|
DATA(94,48)
|
|
DATA(95,30,96)
|
|
DATA(77,71,26,67)
|
|
DATA(97,13,76,38,45)
|
|
DATA(7,36,79,16,37,68)
|
|
DATA(48,7,9,18,70,26,6)
|
|
DATA(18,72,79,46,59,79,29,90)
|
|
DATA(20,76,87,11,32,7,7,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(2,90,3,60,48,49,41,46,33,36,47,23)
|
|
DATA(92,50,48,2,36,59,42,79,72,20,82,77,42)
|
|
DATA(56,78,38,80,39,75,2,71,66,66,1,3,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,1,1,99,89,52)
|
|
DATA(6,71,28,75,94,48,37,10,23,51,6,48,53,18,74,98,15)
|
|
DATA(27,2,92,23,8,71,76,84,15,52,92,63,81,10,44,10,69,93)
|
|
|
|
PRINT(CHR$(12);) !CLS
|
|
LUNG=ROW*(ROW+1)/2
|
|
FOR I%=0 TO LUNG-1 DO
|
|
READ(TRI[I%])
|
|
END FOR
|
|
|
|
BSE=(SQR(8*LUNG+1)-1)/2
|
|
STP=BSE-1
|
|
STEPC=0
|
|
|
|
FOR I%=LUNG-BSE-1 TO 0 STEP -1 DO
|
|
TRI[I%]=TRI[I%]+MAX(TRI[I%+STP],TRI[I%+STP+1])
|
|
STEPC=STEPC+1
|
|
IF STEPC=STP THEN
|
|
STP=STP-1
|
|
STEPC=0
|
|
END IF
|
|
END FOR
|
|
|
|
PRINT(TRI[0])
|
|
END PROGRAM
|