RosettaCodeData/Task/Greatest-subsequential-sum/Action-/greatest-subsequential-sum.action
2023-07-01 13:44:08 -04:00

48 lines
806 B
Text

PROC PrintArray(INT ARRAY a INT first,last)
INT i
Put('[)
FOR i=first TO last
DO
IF i>first THEN Put(' ) FI
PrintI(a(i))
OD
Put(']) PutE()
RETURN
PROC Process(INT ARRAY a INT size)
INT i,j,beg,end
INT sum,best
beg=0 end=-1 best=0
FOR i=0 TO size-1
DO
sum=0
FOR j=i TO size-1
DO
sum==+a(j)
IF sum>best THEN
best=sum
beg=i
end=j
FI
OD
OD
Print("Seq=") PrintArray(a,0,size-1)
PrintF("Max sum=%i %ESubseq=",best)
PrintArray(a,beg,end) PutE()
RETURN
PROC Main()
INT ARRAY
a(11)=[1 2 3 4 5 65528 65527 65516 40 25 65531],
b(11)=[65535 65534 3 5 6 65534 65535 4 65532 2 65535],
c(5)=[65535 65534 65533 65532 65531],
d(0)=[]
Process(a,11)
Process(b,11)
Process(c,5)
Process(d,0)
RETURN