Need help with a homework

It’s not actually using select/3:

Code is hiding here, waiting to be clicked...
subset_sum(0, _, []).
subset_sum(Sum, SourceLst, [Elem|SumLst]) :-
    select_after(Elem, SourceLst, After),
    Sum0 is Sum - Elem,
    compare(Comp, Sum0, 0),
    subset_sum_(Comp, Sum0, After, SumLst).

subset_sum_(=, 0, _, []).
subset_sum_(>, Sum1, SourceLst, SumLst) :-
    subset_sum(Sum1, SourceLst, SumLst).

select_after(Elem, [H|T], After) :-
    select_after_(T, H, Elem, After).
    
select_after_(T, H, H, T).
select_after_([H|T], _, E, R) :-
    select_after_(T, H, E, R).

Results:

?- subset_sum(7, [10,7,3,4,2,1], L).
L = [7] ;
L = [3, 4] ;
L = [4, 2, 1] ;
false.

?- subset_sum(0, [10,7,3,4,2,1], L).
L = [] ;
false.

Note the tweaked argument order.