\ Subset sums \ See notes 7 from CSE 2320 \ Input case has been appended var n,m,s{25},c{3000},i,j,ps,leftover; begin n:=in; m:=in; s{0}:=0; i:=1; while i [ n do begin s{i}:=in; i:=i+1 end; c{0}:=0; ps:=1; while ps [ m do begin c{ps}:= -1; j:=1; while j [ n do begin leftover:=ps-s{j}; if leftover ] 0 then if c{leftover} # -1 then if c{leftover} < j then begin c{ps}:=j; j:=n+1; end; j:=j+1; end; ps:=ps+1 end; i:=m; while c{i} > 0 do begin out:=s{c{i}}; i:=i-s{c{i}} end end. 22 2530 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484